Skip to content

Commit 9446e33

Browse files
committed
Extract metric name normalization into rabbit_prometheus_util
Move `normalize_disabled_metrics/1` and `normalize_metric_name/1` from `prometheus_rabbitmq_core_metrics_collector` into a new `rabbit_prometheus_util` module so that the functions are properly exported and testable. Update `rabbit_prometheus_disabled_metrics_SUITE` to call `rabbit_prometheus_util:normalize_metric_name/1` directly instead of duplicating the implementation locally.
1 parent cb84a37 commit 9446e33

3 files changed

Lines changed: 29 additions & 24 deletions

File tree

deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ add_metric_family({Name, Type, Help, Metrics}, Callback) ->
477477
Callback(create_mf(MN, Help, Type, Metrics)).
478478

479479
mf(Callback, Prefix, Contents, Data) ->
480-
DisabledMetrics = normalize_disabled_metrics(application:get_env(rabbitmq_prometheus, disabled_metrics, [])),
480+
DisabledMetrics = rabbit_prometheus_util:normalize_disabled_metrics(application:get_env(rabbitmq_prometheus, disabled_metrics, [])),
481481
_ = [begin
482482
Fun = case Conversion of
483483
undefined ->
@@ -513,17 +513,6 @@ mf(Callback, Prefix, Contents, Data) ->
513513
)
514514
end || {Index, Conversion, Name, Type, Help, Key} <- Contents, not lists:member(Name, DisabledMetrics)].
515515

516-
normalize_disabled_metrics(Metrics) ->
517-
[normalize_metric_name(M) || M <- Metrics].
518-
519-
normalize_metric_name(Metric) when is_atom(Metric) ->
520-
case atom_to_list(Metric) of
521-
"rabbitmq_detailed_" ++ Rest -> list_to_atom(Rest);
522-
"rabbitmq_cluster_" ++ Rest -> list_to_atom(Rest);
523-
"rabbitmq_" ++ Rest -> list_to_atom(Rest);
524-
_ -> Metric
525-
end.
526-
527516
mf_totals(Callback, Name, Type, Help, Size) ->
528517
Callback(
529518
create_mf(
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
%% This Source Code Form is subject to the terms of the Mozilla Public
2+
%% License, v. 2.0. If a copy of the MPL was not distributed with this
3+
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
4+
%%
5+
%% Copyright (c) 2007-2026 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
6+
%%
7+
8+
-module(rabbit_prometheus_util).
9+
10+
-export([normalize_disabled_metrics/1,
11+
normalize_metric_name/1]).
12+
13+
-spec normalize_disabled_metrics([atom()]) -> [atom()].
14+
normalize_disabled_metrics(Metrics) ->
15+
[normalize_metric_name(M) || M <- Metrics].
16+
17+
-spec normalize_metric_name(atom()) -> atom().
18+
normalize_metric_name(Metric) when is_atom(Metric) ->
19+
case atom_to_list(Metric) of
20+
"rabbitmq_detailed_" ++ Rest -> list_to_atom(Rest);
21+
"rabbitmq_cluster_" ++ Rest -> list_to_atom(Rest);
22+
"rabbitmq_" ++ Rest -> list_to_atom(Rest);
23+
_ -> Metric
24+
end.

deps/rabbitmq_prometheus/test/rabbit_prometheus_disabled_metrics_SUITE.erl

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -110,18 +110,10 @@ disable_multiple_metrics_test(Config) ->
110110
?assertEqual(nomatch, re:run(Body, "^rabbitmq_connection_incoming_bytes_total ", [{capture, none}, multiline])).
111111

112112
normalize_metric_name_test(_Config) ->
113-
?assertEqual(queue_messages, normalize_metric_name(rabbitmq_queue_messages)),
114-
?assertEqual(queue_messages, normalize_metric_name(rabbitmq_detailed_queue_messages)),
115-
?assertEqual(vhost_status, normalize_metric_name(rabbitmq_cluster_vhost_status)),
116-
?assertEqual(other_metric, normalize_metric_name(other_metric)).
117-
118-
normalize_metric_name(Metric) when is_atom(Metric) ->
119-
case atom_to_list(Metric) of
120-
"rabbitmq_detailed_" ++ Rest -> list_to_atom(Rest);
121-
"rabbitmq_cluster_" ++ Rest -> list_to_atom(Rest);
122-
"rabbitmq_" ++ Rest -> list_to_atom(Rest);
123-
_ -> Metric
124-
end.
113+
?assertEqual(queue_messages, rabbit_prometheus_util:normalize_metric_name(rabbitmq_queue_messages)),
114+
?assertEqual(queue_messages, rabbit_prometheus_util:normalize_metric_name(rabbitmq_detailed_queue_messages)),
115+
?assertEqual(vhost_status, rabbit_prometheus_util:normalize_metric_name(rabbitmq_cluster_vhost_status)),
116+
?assertEqual(other_metric, rabbit_prometheus_util:normalize_metric_name(other_metric)).
125117

126118
%% Helpers
127119

0 commit comments

Comments
 (0)