summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2017-06-26 09:27:43 -0700
committerLuke Bakken <luke@bakken.io>2017-06-28 08:19:46 -0700
commitdbeb08a20446d72ff69e1c7b49095f2d27d12b45 (patch)
treeecd5a88f374ee713dc291cd0f9141636e7f95fd5
parentb5d85b581fd45eb4bf36a367fd106cbbf521a1b3 (diff)
downloadrabbitmq-server-git-dbeb08a20446d72ff69e1c7b49095f2d27d12b45.tar.gz
Only GC local queue metrics
Previously, GC would not clear out metrics for non-local queues, so stale data remained in the metrics tables.
-rw-r--r--src/rabbit_core_metrics_gc.erl7
-rw-r--r--test/rabbit_core_metrics_gc_SUITE.erl15
2 files changed, 2 insertions, 20 deletions
diff --git a/src/rabbit_core_metrics_gc.erl b/src/rabbit_core_metrics_gc.erl
index ee03e8f00f..3321f2b5de 100644
--- a/src/rabbit_core_metrics_gc.erl
+++ b/src/rabbit_core_metrics_gc.erl
@@ -25,8 +25,6 @@
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
code_change/3]).
--include_lib("rabbit_common/include/rabbit.hrl").
-
start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
@@ -72,10 +70,7 @@ gc_channels() ->
ok.
gc_queues() ->
- % Queues will contain pids, we want to filter
- Queues = lists:filter(fun(#amqqueue{pid = Pid}) ->
- node(Pid) =:= node()
- end, rabbit_amqqueue:list()),
+ Queues = rabbit_amqqueue:list_local_names(),
GbSet = gb_sets:from_list(Queues),
gc_entity(queue_metrics, GbSet),
gc_entity(queue_coarse_metrics, GbSet),
diff --git a/test/rabbit_core_metrics_gc_SUITE.erl b/test/rabbit_core_metrics_gc_SUITE.erl
index f60a74c315..2540e5cd3e 100644
--- a/test/rabbit_core_metrics_gc_SUITE.erl
+++ b/test/rabbit_core_metrics_gc_SUITE.erl
@@ -380,26 +380,13 @@ cluster_queue_metrics(Config) ->
rabbit_ct_broker_helpers:rpc(Config, Node1, erlang, send, [rabbit_core_metrics_gc, start_gc]),
rabbit_ct_broker_helpers:rpc(Config, Node1, gen_server, call, [rabbit_core_metrics_gc, test]),
- timer:sleep(1000),
-
- rabbit_ct_broker_helpers:rpc(Config, Node0, erlang, send, [rabbit_core_metrics_gc, start_gc]),
- rabbit_ct_broker_helpers:rpc(Config, Node0, gen_server, call, [rabbit_core_metrics_gc, test]),
- rabbit_ct_broker_helpers:rpc(Config, Node1, erlang, send, [rabbit_core_metrics_gc, start_gc]),
- rabbit_ct_broker_helpers:rpc(Config, Node1, gen_server, call, [rabbit_core_metrics_gc, test]),
-
% Check ETS table for data
% rabbit_core_metrics:queue_stats
% {Name, MessagesReady, MessagesUnacknowledge, Messages, Reductions}
% [{{resource,<<"/">>,queue,<<"cluster_queue_metrics">>}, 1,0,1,10524}]
- EtsData0_0 = rabbit_ct_broker_helpers:rpc(Config, Node0, ets, tab2list, [queue_coarse_metrics]),
- [] = EtsData0_0,
-
- EtsData0_1 = rabbit_ct_broker_helpers:rpc(Config, Node0, ets, tab2list, [queue_coarse_metrics]),
- ct:pal("Node 0 ETS: ~p~n", [EtsData0_1]),
- [{Name, 1, 0, 1, _}] = EtsData0_1,
+ [] = rabbit_ct_broker_helpers:rpc(Config, Node0, ets, tab2list, [queue_coarse_metrics]),
EtsData1_0 = rabbit_ct_broker_helpers:rpc(Config, Node1, ets, tab2list, [queue_coarse_metrics]),
- ct:pal("Node 1 ETS: ~p~n", [EtsData1_0]),
[{Name, 1, 0, 1, _}] = EtsData1_0,
amqp_channel:call(Ch, #'queue.delete'{queue=QueueName}),