You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2014/07/31 23:25:00 UTC
[12/50] folsom commit: updated refs/heads/import-master to 4824aec
Fix histogram of type 'none'
* Before, after filling in the SIZE of the histogram, when adding new values the same element was deleted and updated all the time.
* Tests are included.
Project: http://git-wip-us.apache.org/repos/asf/couchdb-folsom/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-folsom/commit/19e5c24a
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-folsom/tree/19e5c24a
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-folsom/diff/19e5c24a
Branch: refs/heads/import-master
Commit: 19e5c24a77e62c136b91bf300c05352419fa8a39
Parents: e9be9f7
Author: Lastres <ra...@gmail.com>
Authored: Tue Jun 18 14:31:53 2013 +0100
Committer: Lastres <ra...@gmail.com>
Committed: Tue Jun 18 15:18:53 2013 +0100
----------------------------------------------------------------------
include/folsom.hrl | 2 +-
src/folsom_sample_none.erl | 8 +++-----
test/folsom_erlang_checks.erl | 19 +++++++++++++++++--
3 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-folsom/blob/19e5c24a/include/folsom.hrl
----------------------------------------------------------------------
diff --git a/include/folsom.hrl b/include/folsom.hrl
index a999798..8be22d6 100644
--- a/include/folsom.hrl
+++ b/include/folsom.hrl
@@ -57,7 +57,7 @@
-record(none, {
size = ?DEFAULT_SIZE,
- n = 0,
+ n = 1,
reservoir = folsom_metrics_histogram_ets:new(folsom_none,[ordered_set, {write_concurrency, true}, public])
}).
http://git-wip-us.apache.org/repos/asf/couchdb-folsom/blob/19e5c24a/src/folsom_sample_none.erl
----------------------------------------------------------------------
diff --git a/src/folsom_sample_none.erl b/src/folsom_sample_none.erl
index 08b3ca7..c0ebc32 100644
--- a/src/folsom_sample_none.erl
+++ b/src/folsom_sample_none.erl
@@ -37,14 +37,12 @@ new(Size) ->
#none{size = Size}.
update(#none{size = Size, reservoir = Reservoir, n = N} = Sample, Value)
- when N < Size ->
+ when N =:= Size ->
ets:insert(Reservoir, {N, Value}),
- Sample#none{n = folsom_utils:get_ets_size(Reservoir) + 1};
+ Sample#none{n = 1};
update(#none{reservoir = Reservoir, n = N} = Sample, Value) ->
- Oldest = ets:first(Reservoir),
- ets:delete(Reservoir, Oldest),
ets:insert(Reservoir, {N, Value}),
- Sample#none{n = folsom_utils:get_ets_size(Reservoir) + 1}.
+ Sample#none{n = N + 1}.
get_values(#none{reservoir = Reservoir}) ->
{_, Values} = lists:unzip(ets:tab2list(Reservoir)),
http://git-wip-us.apache.org/repos/asf/couchdb-folsom/blob/19e5c24a/test/folsom_erlang_checks.erl
----------------------------------------------------------------------
diff --git a/test/folsom_erlang_checks.erl b/test/folsom_erlang_checks.erl
index 6ea9a5a..710344d 100644
--- a/test/folsom_erlang_checks.erl
+++ b/test/folsom_erlang_checks.erl
@@ -44,6 +44,7 @@
-define(HUGEDATA, lists:seq(1,10000)).
-define(DATA1, [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]).
+-define(DATA2, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]).
-include("folsom.hrl").
@@ -59,6 +60,9 @@ create_metrics() ->
ok = folsom_metrics:new_histogram(nonea, none, 5000),
+ ok = folsom_metrics:new_histogram(noneb, none, 10),
+ ok = folsom_metrics:new_histogram(nonec, none, 5),
+
ok = folsom_metrics:new_histogram(timed, none, 5000),
ok = folsom_metrics:new_histogram(timed2, none, 5000),
@@ -86,7 +90,7 @@ create_metrics() ->
%% check a server got started for the spiral metric
1 = length(supervisor:which_children(folsom_sample_slide_sup)),
- 15 = length(folsom_metrics:get_metrics()),
+ 17 = length(folsom_metrics:get_metrics()),
?debugFmt("~n~nmetrics: ~p~n", [folsom_metrics:get_metrics()]).
@@ -128,6 +132,10 @@ populate_metrics() ->
[ok = folsom_metrics:notify({nonea, Value}) || Value <- ?DATA1],
+ [ok = folsom_metrics:notify({noneb, Value}) || Value <- ?DATA2],
+
+ [ok = folsom_metrics:notify({nonec, Value}) || Value <- ?DATA2],
+
3.141592653589793 = folsom_metrics:histogram_timed_update(timed, math, pi, []),
Begin = folsom_metrics:histogram_timed_begin(timed2),
@@ -180,6 +188,10 @@ check_metrics() ->
2 = folsom_metrics:get_metric_value(<<"gauge">>),
+ [11,12,13,14,15,6,7,8,9,10] = folsom_metrics:get_metric_value(noneb),
+
+ [11,12,13,14,15] = folsom_metrics:get_metric_value(nonec),
+
Histogram1 = folsom_metrics:get_histogram_statistics(<<"uniform">>),
histogram_checks(Histogram1),
@@ -284,7 +296,7 @@ check_group_metrics() ->
{counter, 0} = lists:keyfind(counter,1,Metrics).
delete_metrics() ->
- 17 = length(ets:tab2list(?FOLSOM_TABLE)),
+ 19 = length(ets:tab2list(?FOLSOM_TABLE)),
ok = folsom_metrics:delete_metric(counter),
ok = folsom_metrics:delete_metric(counter2),
@@ -299,6 +311,9 @@ delete_metrics() ->
ok = folsom_metrics:delete_metric(historya),
ok = folsom_metrics:delete_metric(nonea),
+ ok = folsom_metrics:delete_metric(noneb),
+ ok = folsom_metrics:delete_metric(nonec),
+
ok = folsom_metrics:delete_metric(timed),
ok = folsom_metrics:delete_metric(timed2),
ok = folsom_metrics:delete_metric(testcounter),