Skip to content

Commit 46b7578

Browse files
Merge pull request #11689 from rabbitmq/mk-revert-11559
Revert #11559
2 parents ec828e9 + 0700e1c commit 46b7578

File tree

5 files changed

+25
-208
lines changed

5 files changed

+25
-208
lines changed

deps/rabbit/src/rabbit_core_metrics_gc.erl

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,14 @@ gc_leader_data(Id, Table, GbSet) ->
9292
gc_global_queues() ->
9393
GbSet = gb_sets:from_list(rabbit_amqqueue:list_names()),
9494
gc_process_and_entity(channel_queue_metrics, GbSet),
95-
gc_entity(queue_counter_metrics, GbSet),
9695
gc_process_and_entity(consumer_created, GbSet),
9796
ExchangeGbSet = gb_sets:from_list(rabbit_exchange:list_names()),
98-
gc_process_and_entities(channel_queue_exchange_metrics, GbSet, ExchangeGbSet),
99-
gc_entities(queue_exchange_metrics, GbSet, ExchangeGbSet).
97+
gc_process_and_entities(channel_queue_exchange_metrics, GbSet, ExchangeGbSet).
10098

10199
gc_exchanges() ->
102100
Exchanges = rabbit_exchange:list_names(),
103101
GbSet = gb_sets:from_list(Exchanges),
104-
gc_process_and_entity(channel_exchange_metrics, GbSet),
105-
gc_entity(exchange_metrics, GbSet).
102+
gc_process_and_entity(channel_exchange_metrics, GbSet).
106103

107104
gc_nodes() ->
108105
Nodes = rabbit_nodes:list_members(),
@@ -156,12 +153,6 @@ gc_entity(Table, GbSet) ->
156153
({Id = Key, _, _}, none) ->
157154
gc_entity(Id, Table, Key, GbSet);
158155
({Id = Key, _, _, _, _}, none) ->
159-
gc_entity(Id, Table, Key, GbSet);
160-
({Id = Key, _, _, _, _, _}, none)
161-
when Table == exchange_metrics ->
162-
gc_entity(Id, Table, Key, GbSet);
163-
({Id = Key, _, _, _, _, _, _, _, _}, none)
164-
when Table == queue_counter_metrics ->
165156
gc_entity(Id, Table, Key, GbSet)
166157
end, none, Table).
167158

@@ -197,13 +188,6 @@ gc_process_and_entity(Id, Pid, Table, Key, GbSet) ->
197188
none
198189
end.
199190

200-
gc_entities(Table, QueueGbSet, ExchangeGbSet) ->
201-
ets:foldl(fun({{QueueId, ExchangeId} = Key, _, _}, none)
202-
when Table == queue_exchange_metrics ->
203-
gc_entity(QueueId, Table, Key, QueueGbSet),
204-
gc_entity(ExchangeId, Table, Key, ExchangeGbSet)
205-
end, none, Table).
206-
207191
gc_process_and_entities(Table, QueueGbSet, ExchangeGbSet) ->
208192
ets:foldl(fun({{Pid, {Q, X}} = Key, _, _}, none) ->
209193
gc_process(Pid, Table, Key),

deps/rabbit_common/include/rabbit_core_metrics.hrl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@
2828
{auth_attempt_metrics, set},
2929
{auth_attempt_detailed_metrics, set}]).
3030

31-
% `CORE_NON_CHANNEL_TABLES` are tables that store counters representing the
32-
% same info as some of the channel_queue_metrics, channel_exchange_metrics and
33-
% channel_queue_exchange_metrics but without including the channel ID in the
34-
% key.
35-
-define(CORE_NON_CHANNEL_TABLES, [{queue_counter_metrics, set},
36-
{exchange_metrics, set},
37-
{queue_exchange_metrics, set}]).
38-
3931
-define(CONNECTION_CHURN_METRICS, {node(), 0, 0, 0, 0, 0, 0, 0}).
4032

4133
%% connection_created :: {connection_id, proplist}

deps/rabbit_common/src/rabbit_core_metrics.erl

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,13 @@ create_table({Table, Type}) ->
111111
{read_concurrency, true}]).
112112

113113
init() ->
114-
Tables = ?CORE_TABLES ++ ?CORE_EXTRA_TABLES ++ ?CORE_NON_CHANNEL_TABLES,
115-
_ = [create_table({Table, Type})
116-
|| {Table, Type} <- Tables],
114+
_ = [create_table({Table, Type})
115+
|| {Table, Type} <- ?CORE_TABLES ++ ?CORE_EXTRA_TABLES],
117116
ok.
118117

119118
terminate() ->
120-
Tables = ?CORE_TABLES ++ ?CORE_EXTRA_TABLES ++ ?CORE_NON_CHANNEL_TABLES,
121119
[ets:delete(Table)
122-
|| {Table, _Type} <- Tables],
120+
|| {Table, _Type} <- ?CORE_TABLES ++ ?CORE_EXTRA_TABLES],
123121
ok.
124122

125123
connection_created(Pid, Infos) ->
@@ -168,65 +166,53 @@ channel_stats(reductions, Id, Value) ->
168166
ets:insert(channel_process_metrics, {Id, Value}),
169167
ok.
170168

171-
channel_stats(exchange_stats, publish, {_ChannelPid, XName} = Id, Value) ->
169+
channel_stats(exchange_stats, publish, Id, Value) ->
172170
%% Includes delete marker
173171
_ = ets:update_counter(channel_exchange_metrics, Id, {2, Value}, {Id, 0, 0, 0, 0, 0}),
174-
_ = ets:update_counter(exchange_metrics, XName, {2, Value}, {XName, 0, 0, 0, 0, 0}),
175172
ok;
176-
channel_stats(exchange_stats, confirm, {_ChannelPid, XName} = Id, Value) ->
173+
channel_stats(exchange_stats, confirm, Id, Value) ->
177174
%% Includes delete marker
178175
_ = ets:update_counter(channel_exchange_metrics, Id, {3, Value}, {Id, 0, 0, 0, 0, 0}),
179-
_ = ets:update_counter(exchange_metrics, XName, {3, Value}, {XName, 0, 0, 0, 0, 0}),
180176
ok;
181-
channel_stats(exchange_stats, return_unroutable, {_ChannelPid, XName} = Id, Value) ->
177+
channel_stats(exchange_stats, return_unroutable, Id, Value) ->
182178
%% Includes delete marker
183179
_ = ets:update_counter(channel_exchange_metrics, Id, {4, Value}, {Id, 0, 0, 0, 0, 0}),
184-
_ = ets:update_counter(exchange_metrics, XName, {4, Value}, {XName, 0, 0, 0, 0, 0}),
185180
ok;
186-
channel_stats(exchange_stats, drop_unroutable, {_ChannelPid, XName} = Id, Value) ->
181+
channel_stats(exchange_stats, drop_unroutable, Id, Value) ->
187182
%% Includes delete marker
188183
_ = ets:update_counter(channel_exchange_metrics, Id, {5, Value}, {Id, 0, 0, 0, 0, 0}),
189-
_ = ets:update_counter(exchange_metrics, XName, {5, Value}, {XName, 0, 0, 0, 0, 0}),
190184
ok;
191-
channel_stats(queue_exchange_stats, publish, {_ChannelPid, QueueExchange} = Id, Value) ->
185+
channel_stats(queue_exchange_stats, publish, Id, Value) ->
192186
%% Includes delete marker
193187
_ = ets:update_counter(channel_queue_exchange_metrics, Id, Value, {Id, 0, 0}),
194-
_ = ets:update_counter(queue_exchange_metrics, QueueExchange, Value, {QueueExchange, 0, 0}),
195188
ok;
196-
channel_stats(queue_stats, get, {_ChannelPid, QName} = Id, Value) ->
189+
channel_stats(queue_stats, get, Id, Value) ->
197190
%% Includes delete marker
198191
_ = ets:update_counter(channel_queue_metrics, Id, {2, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
199-
_ = ets:update_counter(queue_counter_metrics, QName, {2, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
200192
ok;
201-
channel_stats(queue_stats, get_no_ack, {_ChannelPid, QName} = Id, Value) ->
193+
channel_stats(queue_stats, get_no_ack, Id, Value) ->
202194
%% Includes delete marker
203195
_ = ets:update_counter(channel_queue_metrics, Id, {3, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
204-
_ = ets:update_counter(queue_counter_metrics, QName, {3, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
205196
ok;
206-
channel_stats(queue_stats, deliver, {_ChannelPid, QName} = Id, Value) ->
197+
channel_stats(queue_stats, deliver, Id, Value) ->
207198
%% Includes delete marker
208199
_ = ets:update_counter(channel_queue_metrics, Id, {4, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
209-
_ = ets:update_counter(queue_counter_metrics, QName, {4, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
210200
ok;
211-
channel_stats(queue_stats, deliver_no_ack, {_ChannelPid, QName} = Id, Value) ->
201+
channel_stats(queue_stats, deliver_no_ack, Id, Value) ->
212202
%% Includes delete marker
213203
_ = ets:update_counter(channel_queue_metrics, Id, {5, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
214-
_ = ets:update_counter(queue_counter_metrics, QName, {5, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
215204
ok;
216-
channel_stats(queue_stats, redeliver, {_ChannelPid, QName} = Id, Value) ->
205+
channel_stats(queue_stats, redeliver, Id, Value) ->
217206
%% Includes delete marker
218207
_ = ets:update_counter(channel_queue_metrics, Id, {6, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
219-
_ = ets:update_counter(queue_counter_metrics, QName, {6, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
220208
ok;
221-
channel_stats(queue_stats, ack, {_ChannelPid, QName} = Id, Value) ->
209+
channel_stats(queue_stats, ack, Id, Value) ->
222210
%% Includes delete marker
223211
_ = ets:update_counter(channel_queue_metrics, Id, {7, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
224-
_ = ets:update_counter(queue_counter_metrics, QName, {7, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
225212
ok;
226-
channel_stats(queue_stats, get_empty, {_ChannelPid, QName} = Id, Value) ->
213+
channel_stats(queue_stats, get_empty, Id, Value) ->
227214
%% Includes delete marker
228215
_ = ets:update_counter(channel_queue_metrics, Id, {8, Value}, {Id, 0, 0, 0, 0, 0, 0, 0, 0}),
229-
_ = ets:update_counter(queue_counter_metrics, QName, {8, Value}, {QName, 0, 0, 0, 0, 0, 0, 0, 0}),
230216
ok.
231217

232218
delete(Table, Key) ->

deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl

Lines changed: 7 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160
{2, undefined, queue_disk_writes_total, counter, "Total number of times queue wrote messages to disk", disk_writes},
161161
{2, undefined, stream_segments, counter, "Total number of stream segment files", segments}
162162
]},
163+
163164
%%% Metrics that contain reference to a channel. Some of them also have
164165
%%% a queue name, but in this case filtering on it doesn't make any
165166
%%% sense, as the queue is not an object of interest here.
@@ -208,7 +209,7 @@
208209
]},
209210

210211
{channel_queue_exchange_metrics, [
211-
{2, undefined, queue_messages_published_total, counter, "Total number of messages published into a queue through a exchange on a channel"}
212+
{2, undefined, queue_messages_published_total, counter, "Total number of messages published to queues"}
212213
]}
213214
]).
214215

@@ -222,25 +223,8 @@
222223
]},
223224
{exchange_names, [
224225
{2, undefined, exchange_name, gauge, "Enumerates exchanges without any additional info. This value is cluster-wide. A cheaper alternative to `exchange_bindings`"}
225-
]},
226-
{queue_exchange_metrics, [
227-
{2, undefined, queue_exchange_messages_published_total, counter, "Total number of messages published into a queue through an exchange"}
228-
]},
229-
{exchange_metrics, [
230-
{2, undefined, exchange_messages_published_total, counter, "Total number of messages published into an exchange"},
231-
{3, undefined, exchange_messages_confirmed_total, counter, "Total number of messages published into an exchange and confirmed"},
232-
{4, undefined, exchange_messages_unroutable_returned_total, counter, "Total number of messages published as mandatory into an exchange and returned to the publisher as unroutable"},
233-
{5, undefined, exchange_messages_unroutable_dropped_total, counter, "Total number of messages published as non-mandatory into an exchange and dropped as unroutable"}
234-
]},
235-
{queue_counter_metrics, [
236-
{2, undefined, queue_get_ack_total, counter, "Total number of messages fetched from a queue with basic.get in manual acknowledgement mode"},
237-
{3, undefined, queue_get_total, counter, "Total number of messages fetched from a queue with basic.get in automatic acknowledgement mode"},
238-
{4, undefined, queue_messages_delivered_ack_total, counter, "Total number of messages delivered from a queue to consumers in manual acknowledgement mode"},
239-
{5, undefined, queue_messages_delivered_total, counter, "Total number of messages delivered from a queue to consumers in automatic acknowledgement mode"},
240-
{6, undefined, queue_messages_redelivered_total, counter, "Total number of messages redelivered from a queue to consumers"},
241-
{7, undefined, queue_messages_acked_total, counter, "Total number of messages acknowledged by consumers on a queue"},
242-
{8, undefined, queue_get_empty_total, counter, "Total number of times basic.get operations fetched no message on a queue"}
243-
]}]).
226+
]}
227+
]).
244228

245229
-define(TOTALS, [
246230
%% ordering differs from metrics above, refer to list comprehension
@@ -558,22 +542,15 @@ get_data(queue_metrics = Table, false, VHostsFilter) ->
558542
{disk_reads, A15}, {disk_writes, A16}, {segments, A17}]}];
559543
get_data(Table, false, VHostsFilter) when Table == channel_exchange_metrics;
560544
Table == queue_coarse_metrics;
561-
Table == queue_counter_metrics;
562545
Table == channel_queue_metrics;
563546
Table == connection_coarse_metrics;
564-
Table == exchange_metrics;
565-
Table == queue_exchange_metrics;
566547
Table == channel_queue_exchange_metrics;
567548
Table == ra_metrics;
568549
Table == channel_process_metrics ->
569550
Result = ets:foldl(fun
570551
%% For queue_coarse_metrics
571552
({#resource{kind = queue, virtual_host = VHost}, _, _, _, _}, Acc) when is_map(VHostsFilter), map_get(VHost, VHostsFilter) == false ->
572553
Acc;
573-
({#resource{kind = queue, virtual_host = VHost}, _, _, _, _, _, _, _, _}, Acc) when is_map(VHostsFilter), map_get(VHost, VHostsFilter) == false ->
574-
Acc;
575-
({{#resource{kind = queue, virtual_host = VHost}, #resource{kind = exchange}}, _, _}, Acc) when is_map(VHostsFilter), map_get(VHost, VHostsFilter) == false ->
576-
Acc;
577554
({_, V1}, {T, A1}) ->
578555
{T, V1 + A1};
579556
({_, V1, _}, {T, A1}) ->
@@ -600,36 +577,6 @@ get_data(Table, false, VHostsFilter) when Table == channel_exchange_metrics;
600577
_ ->
601578
[Result]
602579
end;
603-
get_data(exchange_metrics = Table, true, VHostsFilter) when is_map(VHostsFilter)->
604-
ets:foldl(fun
605-
({#resource{kind = exchange, virtual_host = VHost}, _, _, _, _, _} = Row, Acc) when
606-
map_get(VHost, VHostsFilter)
607-
->
608-
[Row | Acc];
609-
(_Row, Acc) ->
610-
Acc
611-
end, [], Table);
612-
get_data(queue_counter_metrics = Table, true, VHostsFilter) when is_map(VHostsFilter) ->
613-
ets:foldl(fun
614-
({#resource{kind = queue, virtual_host = VHost}, _, _, _, _, _, _, _, _} = Row, Acc) when
615-
map_get(VHost, VHostsFilter)
616-
->
617-
[Row | Acc];
618-
(_Row, Acc) ->
619-
Acc
620-
end, [], Table);
621-
get_data(queue_exchange_metrics = Table, true, VHostsFilter) when is_map(VHostsFilter) ->
622-
ets:foldl(fun
623-
({{
624-
#resource{kind = queue, virtual_host = VHost},
625-
#resource{kind = exchange, virtual_host = VHost}
626-
}, _, _} = Row, Acc) when
627-
map_get(VHost, VHostsFilter)
628-
->
629-
[Row | Acc];
630-
(_Row, Acc) ->
631-
Acc
632-
end, [], Table);
633580
get_data(queue_coarse_metrics = Table, true, VHostsFilter) when is_map(VHostsFilter) ->
634581
ets:foldl(fun
635582
({#resource{kind = queue, virtual_host = VHost}, _, _, _, _} = Row, Acc) when map_get(VHost, VHostsFilter) ->
@@ -722,15 +669,15 @@ division(A, B) ->
722669
accumulate_count_and_sum(Value, {Count, Sum}) ->
723670
{Count + 1, Sum + Value}.
724671

725-
empty(T) when T == channel_queue_exchange_metrics; T == queue_exchange_metrics; T == channel_process_metrics; T == queue_consumer_count ->
672+
empty(T) when T == channel_queue_exchange_metrics; T == channel_process_metrics; T == queue_consumer_count ->
726673
{T, 0};
727674
empty(T) when T == connection_coarse_metrics; T == auth_attempt_metrics; T == auth_attempt_detailed_metrics ->
728675
{T, 0, 0, 0};
729-
empty(T) when T == channel_exchange_metrics; T == exchange_metrics; T == queue_coarse_metrics; T == connection_metrics ->
676+
empty(T) when T == channel_exchange_metrics; T == queue_coarse_metrics; T == connection_metrics ->
730677
{T, 0, 0, 0, 0};
731678
empty(T) when T == ra_metrics ->
732679
{T, 0, 0, 0, 0, 0, {0, 0}};
733-
empty(T) when T == channel_queue_metrics; T == queue_counter_metrics; T == channel_metrics ->
680+
empty(T) when T == channel_queue_metrics; T == channel_metrics ->
734681
{T, 0, 0, 0, 0, 0, 0, 0};
735682
empty(queue_metrics = T) ->
736683
{T, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}.

deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl

Lines changed: 1 addition & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ groups() ->
3434
{config_path, [], generic_tests()},
3535
{global_labels, [], generic_tests()},
3636
{aggregated_metrics, [], [
37-
aggregated_metrics_test,
37+
aggregated_metrics_test,
3838
specific_erlang_metrics_present_test,
3939
global_metrics_present_test,
4040
global_metrics_single_metric_family_test
@@ -57,8 +57,6 @@ groups() ->
5757
queue_consumer_count_single_vhost_per_object_test,
5858
queue_consumer_count_all_vhosts_per_object_test,
5959
queue_coarse_metrics_per_object_test,
60-
queue_counter_metrics_per_object_test,
61-
queue_exchange_metrics_per_object_test,
6260
queue_metrics_per_object_test,
6361
queue_consumer_count_and_queue_metrics_mutually_exclusive_test,
6462
vhost_status_metric,
@@ -525,96 +523,6 @@ queue_coarse_metrics_per_object_test(Config) ->
525523
map_get(rabbitmq_detailed_queue_messages, parse_response(Body3))),
526524
ok.
527525

528-
queue_counter_metrics_per_object_test(Config) ->
529-
Expected1 = #{#{queue => "vhost-1-queue-with-consumer", vhost => "vhost-1"} => [7]},
530-
531-
{_, Body1} = http_get_with_pal(Config,
532-
"/metrics/detailed?vhost=vhost-1&family=queue_counter_metrics",
533-
[], 200),
534-
?assertEqual(
535-
Expected1,
536-
map_get(
537-
rabbitmq_detailed_queue_messages_delivered_ack_total,
538-
parse_response(Body1))),
539-
540-
{_, Body2} = http_get_with_pal(Config,
541-
"/metrics/detailed?vhost=vhost-2&family=queue_counter_metrics",
542-
[], 200),
543-
Expected2 = #{#{queue => "vhost-2-queue-with-consumer", vhost => "vhost-2"} => [11]},
544-
545-
?assertEqual(
546-
Expected2,
547-
map_get(
548-
rabbitmq_detailed_queue_messages_delivered_ack_total,
549-
parse_response(Body2))),
550-
551-
%% Maybe missing, tests for the queue_exchange_metrics
552-
ok.
553-
554-
555-
queue_exchange_metrics_per_object_test(Config) ->
556-
Expected1 = #{
557-
#{
558-
queue => "vhost-1-queue-with-messages",
559-
vhost => "vhost-1",
560-
exchange => ""
561-
} => [7],
562-
#{
563-
exchange => "",
564-
queue => "vhost-1-queue-with-consumer",
565-
vhost => "vhost-1"
566-
} => [7]
567-
},
568-
569-
{_, Body1} = http_get_with_pal(Config,
570-
"/metrics/detailed?vhost=vhost-1&family=queue_exchange_metrics",
571-
[], 200),
572-
?assertEqual(
573-
Expected1,
574-
map_get(
575-
rabbitmq_detailed_queue_exchange_messages_published_total,
576-
parse_response(Body1))),
577-
578-
579-
{_, Body2} = http_get_with_pal(Config,
580-
"/metrics/detailed?vhost=vhost-2&family=queue_exchange_metrics",
581-
[], 200),
582-
583-
584-
Expected2 = #{
585-
#{
586-
queue => "vhost-2-queue-with-messages",
587-
vhost => "vhost-2",
588-
exchange => ""
589-
} => [11],
590-
#{
591-
exchange => "",
592-
queue => "vhost-2-queue-with-consumer",
593-
vhost => "vhost-2"
594-
} => [11]
595-
},
596-
597-
?assertEqual(
598-
Expected2,
599-
map_get(
600-
rabbitmq_detailed_queue_exchange_messages_published_total,
601-
parse_response(Body2))),
602-
603-
ok.
604-
605-
exchange_metrics_per_object_test(Config) ->
606-
Expected1 = #{#{queue => "vhost-1-queue-with-consumer", vhost => "vhost-1"} => [7]},
607-
608-
{_, Body} = http_get_with_pal(Config,
609-
"/metrics/detailed?vhost=vhost-1&family=exchange_metrics",
610-
[], 200),
611-
?assertEqual(
612-
Expected1,
613-
map_get(
614-
rabbitmq_detailed_queue_messages_delivered_ack_total,
615-
parse_response(Body))),
616-
ok.
617-
618526
queue_metrics_per_object_test(Config) ->
619527
Expected1 = #{#{queue => "vhost-1-queue-with-consumer", vhost => "vhost-1"} => [7],
620528
#{queue => "vhost-1-queue-with-messages", vhost => "vhost-1"} => [1]},

0 commit comments

Comments
 (0)