Skip to content

Commit 9565fca

Browse files
Merge pull request #2176 from rabbitmq/duplicated-consumers-metric
Remove duplicated consumers metric in quorum queues (cherry picked from commit ab8bb70)
1 parent cf0cf52 commit 9565fca

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

src/rabbit_quorum_queue.erl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,14 +252,15 @@ handle_tick(QName,
252252
0 -> 0;
253253
_ -> rabbit_fifo:usage(Name)
254254
end,
255-
Infos = [{consumers, C}, {consumer_utilisation, Util},
255+
Infos = [{consumers, C},
256+
{consumer_utilisation, Util},
256257
{message_bytes_ready, MsgBytesReady},
257258
{message_bytes_unacknowledged, MsgBytesUnack},
258259
{message_bytes, MsgBytesReady + MsgBytesUnack},
259260
{message_bytes_persistent, MsgBytesReady + MsgBytesUnack},
260261
{messages_persistent, M}
261262

262-
| infos(QName)],
263+
| infos(QName, ?STATISTICS_KEYS -- [consumers])],
263264
rabbit_core_metrics:queue_stats(QName, Infos),
264265
rabbit_event:notify(queue_stats,
265266
Infos ++ [{name, QName},
@@ -582,9 +583,12 @@ info(Q) ->
582583
-spec infos(rabbit_types:r('queue')) -> rabbit_types:infos().
583584

584585
infos(QName) ->
586+
infos(QName, ?STATISTICS_KEYS).
587+
588+
infos(QName, Keys) ->
585589
case rabbit_amqqueue:lookup(QName) of
586590
{ok, Q} ->
587-
info(Q, ?STATISTICS_KEYS);
591+
info(Q, Keys);
588592
{error, not_found} ->
589593
[]
590594
end.

test/quorum_queue_SUITE.erl

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ all_tests() ->
127127
queue_length_in_memory_bytes_limit_subscribe,
128128
queue_length_in_memory_bytes_limit,
129129
queue_length_in_memory_purge,
130-
in_memory
130+
in_memory,
131+
consumer_metrics
131132
].
132133

133134
memory_tests() ->
@@ -2244,6 +2245,24 @@ in_memory(Config) ->
22442245
?assertEqual([{0, 0}],
22452246
dirty_query([Server], RaName, fun rabbit_fifo:query_in_memory_usage/1)).
22462247

2248+
consumer_metrics(Config) ->
2249+
[Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
2250+
2251+
Ch1 = rabbit_ct_client_helpers:open_channel(Config, Server),
2252+
QQ = ?config(queue_name, Config),
2253+
?assertEqual({'queue.declare_ok', QQ, 0, 0},
2254+
declare(Ch1, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>}])),
2255+
subscribe(Ch1, QQ, false),
2256+
2257+
RaName = ra_name(QQ),
2258+
{ok, _, {_, Leader}} = ra:members({RaName, Server}),
2259+
timer:sleep(5000),
2260+
QNameRes = rabbit_misc:r(<<"/">>, queue, QQ),
2261+
[{_, PropList, _}] = rpc:call(Leader, ets, lookup, [queue_metrics, QNameRes]),
2262+
?assertMatch([{consumers, 1}], lists:filter(fun({Key, _}) ->
2263+
Key == consumers
2264+
end, PropList)).
2265+
22472266
%%----------------------------------------------------------------------------
22482267

22492268
declare(Ch, Q) ->

0 commit comments

Comments
 (0)