summaryrefslogtreecommitdiff
path: root/src/couch_stats/src/couch_stats.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couch_stats/src/couch_stats.erl')
-rw-r--r--src/couch_stats/src/couch_stats.erl130
1 files changed, 0 insertions, 130 deletions
diff --git a/src/couch_stats/src/couch_stats.erl b/src/couch_stats/src/couch_stats.erl
deleted file mode 100644
index e0303fc0f..000000000
--- a/src/couch_stats/src/couch_stats.erl
+++ /dev/null
@@ -1,130 +0,0 @@
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-% http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-
--module(couch_stats).
-
--export([
- start/0,
- stop/0,
- fetch/0,
- reload/0,
- sample/1,
- new/2,
- delete/1,
- list/0,
- increment_counter/1,
- increment_counter/2,
- decrement_counter/1,
- decrement_counter/2,
- update_histogram/2,
- update_gauge/2
-]).
-
--include("couch_stats.hrl").
-
--type response() :: ok | {error, unknown_metric}.
--type stat() :: {any(), [{atom(), any()}]}.
-
-start() ->
- application:start(couch_stats).
-
-stop() ->
- application:stop(couch_stats).
-
-fetch() ->
- couch_stats_aggregator:fetch().
-
-reload() ->
- couch_stats_aggregator:reload().
-
--spec sample(any()) -> stat().
-sample(Name) ->
- [{Name, Info}] = folsom_metrics:get_metric_info(Name),
- sample_type(Name, proplists:get_value(type, Info)).
-
--spec new(atom(), any()) -> ok | {error, metric_exists | unsupported_type}.
-new(counter, Name) ->
- case folsom_metrics:new_counter(Name) of
- ok -> ok;
- {error, Name, metric_already_exists} -> {error, metric_exists}
- end;
-new(histogram, Name) ->
- Time = config:get_integer("stats", "interval", ?DEFAULT_INTERVAL),
- case folsom_metrics:new_histogram(Name, slide_uniform, {Time, 1024}) of
- ok -> ok;
- {error, Name, metric_already_exists} -> {error, metric_exists}
- end;
-new(gauge, Name) ->
- case folsom_metrics:new_gauge(Name) of
- ok -> ok;
- {error, Name, metric_already_exists} -> {error, metric_exists}
- end;
-new(_, _) ->
- {error, unsupported_type}.
-
-delete(Name) ->
- folsom_metrics:delete_metric(Name).
-
-list() ->
- folsom_metrics:get_metrics_info().
-
--spec increment_counter(any()) -> response().
-increment_counter(Name) ->
- notify_existing_metric(Name, {inc, 1}, counter).
-
--spec increment_counter(any(), pos_integer()) -> response().
-increment_counter(Name, Value) ->
- notify_existing_metric(Name, {inc, Value}, counter).
-
--spec decrement_counter(any()) -> response().
-decrement_counter(Name) ->
- notify_existing_metric(Name, {dec, 1}, counter).
-
--spec decrement_counter(any(), pos_integer()) -> response().
-decrement_counter(Name, Value) ->
- notify_existing_metric(Name, {dec, Value}, counter).
-
--spec update_histogram
- (any(), number()) -> response();
- (any(), function()) -> any().
-update_histogram(Name, Fun) when is_function(Fun, 0) ->
- Begin = os:timestamp(),
- Result = Fun(),
- Duration = timer:now_diff(os:timestamp(), Begin) div 1000,
- case notify_existing_metric(Name, Duration, histogram) of
- ok ->
- Result;
- {error, unknown_metric} ->
- throw({unknown_metric, Name})
- end;
-update_histogram(Name, Value) when is_number(Value) ->
- notify_existing_metric(Name, Value, histogram).
-
--spec update_gauge(any(), number()) -> response().
-update_gauge(Name, Value) ->
- notify_existing_metric(Name, Value, gauge).
-
--spec notify_existing_metric(any(), any(), any()) -> response().
-notify_existing_metric(Name, Op, Type) ->
- try
- ok = folsom_metrics:notify_existing_metric(Name, Op, Type)
- catch
- _:_ ->
- error_logger:error_msg("unknown metric: ~p", [Name]),
- {error, unknown_metric}
- end.
-
--spec sample_type(any(), atom()) -> stat().
-sample_type(Name, histogram) ->
- folsom_metrics:get_histogram_statistics(Name);
-sample_type(Name, _) ->
- folsom_metrics:get_metric_value(Name).