You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ei...@apache.org on 2017/09/25 20:04:40 UTC

[couchdb] branch master updated: Make stats interval into config parameter (#830)

This is an automated email from the ASF dual-hosted git repository.

eiri pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 3b8b9a3  Make stats interval into config parameter (#830)
3b8b9a3 is described below

commit 3b8b9a3f4e778b20bbffcaa91c86993d6a64452f
Author: Eric Avdey <ei...@eiri.ca>
AuthorDate: Mon Sep 25 17:04:38 2017 -0300

    Make stats interval into config parameter (#830)
---
 rel/overlay/etc/default.ini                                  |  4 ++++
 src/couch_stats/src/couch_stats.app.src                      |  4 +---
 src/couch_stats/src/couch_stats.erl                          |  6 +++++-
 src/couch_stats/src/{couch_stats.app.src => couch_stats.hrl} | 12 ++----------
 src/couch_stats/src/couch_stats_aggregator.erl               | 11 ++++++-----
 5 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/rel/overlay/etc/default.ini b/rel/overlay/etc/default.ini
index 653131e..43a40fb 100644
--- a/rel/overlay/etc/default.ini
+++ b/rel/overlay/etc/default.ini
@@ -541,3 +541,7 @@ writer = stderr
 ; syslog_port = 514
 ; syslog_appid = couchdb
 ; syslog_facility = local2
+
+[stats]
+; Stats collection interval in seconds. Default 10 seconds.
+;interval = 10
diff --git a/src/couch_stats/src/couch_stats.app.src b/src/couch_stats/src/couch_stats.app.src
index d60ce1c..6339a0f 100644
--- a/src/couch_stats/src/couch_stats.app.src
+++ b/src/couch_stats/src/couch_stats.app.src
@@ -16,7 +16,5 @@
     {registered, [couch_stats_aggregator, couch_stats_process_tracker]},
     {applications, [kernel, stdlib, folsom, couch_log]},
     {mod, {couch_stats_app, []}},
-    {env, [
-        {collection_interval, 10}
-    ]}
+    {env, []}
 ]}.
diff --git a/src/couch_stats/src/couch_stats.erl b/src/couch_stats/src/couch_stats.erl
index e02da29..59175f7 100644
--- a/src/couch_stats/src/couch_stats.erl
+++ b/src/couch_stats/src/couch_stats.erl
@@ -29,6 +29,10 @@
     update_gauge/2
 ]).
 
+
+-include("couch_stats.hrl").
+
+
 -type response() :: ok | {error, unknown_metric}.
 -type stat() :: {any(), [{atom(), any()}]}.
 
@@ -56,7 +60,7 @@ new(counter, Name) ->
         {error, Name, metric_already_exists} -> {error, metric_exists}
     end;
 new(histogram, Name) ->
-    {ok, Time} = application:get_env(couch_stats, collection_interval),
+    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}
diff --git a/src/couch_stats/src/couch_stats.app.src b/src/couch_stats/src/couch_stats.hrl
similarity index 63%
copy from src/couch_stats/src/couch_stats.app.src
copy to src/couch_stats/src/couch_stats.hrl
index d60ce1c..3cffe99 100644
--- a/src/couch_stats/src/couch_stats.app.src
+++ b/src/couch_stats/src/couch_stats.hrl
@@ -10,13 +10,5 @@
 % License for the specific language governing permissions and limitations under
 % the License.
 
-{application, couch_stats, [
-    {description, "Simple statistics collection"},
-    {vsn, git},
-    {registered, [couch_stats_aggregator, couch_stats_process_tracker]},
-    {applications, [kernel, stdlib, folsom, couch_log]},
-    {mod, {couch_stats_app, []}},
-    {env, [
-        {collection_interval, 10}
-    ]}
-]}.
+-define(DEFAULT_INTERVAL, 10).
+-define(RELOAD_INTERVAL, 600).
diff --git a/src/couch_stats/src/couch_stats_aggregator.erl b/src/couch_stats/src/couch_stats_aggregator.erl
index 0f6c9dd..17bd6fc 100644
--- a/src/couch_stats/src/couch_stats_aggregator.erl
+++ b/src/couch_stats/src/couch_stats_aggregator.erl
@@ -30,6 +30,9 @@
     terminate/2
 ]).
 
+
+-include("couch_stats.hrl").
+
 -record(st, {
     descriptions,
     stats,
@@ -52,11 +55,9 @@ start_link() ->
 
 init([]) ->
     {ok, Descs} = reload_metrics(),
-    Interval = case application:get_env(couch_stats, collection_interval) of
-        {ok, I} -> I * 1000
-    end,
-    {ok, CT} = timer:send_interval(Interval, self(), collect),
-    {ok, RT} = timer:send_interval(600000, self(), reload),
+    Interval = config:get_integer("stats", "interval", ?DEFAULT_INTERVAL),
+    {ok, CT} = timer:send_interval(Interval * 1000, self(), collect),
+    {ok, RT} = timer:send_interval(?RELOAD_INTERVAL * 1000, self(), reload),
     {ok, #st{descriptions=Descs, stats=[], collect_timer=CT, reload_timer=RT}}.
 
 handle_call(fetch, _from, #st{stats = Stats}=State) ->

-- 
To stop receiving notification emails like this one, please contact
['"commits@couchdb.apache.org" <co...@couchdb.apache.org>'].