Skip to content

Commit 2b29976

Browse files
gomoripetimergify[bot]
authored andcommitted
Expose number of unreachable cluster peers via Prometheus
Unreachable peers is a subset of DB cluster nodes that are not connected to the current node via Erlang distribution for any reason. (cherry picked from commit e009a0a)
1 parent c3d680f commit 2b29976

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

deps/rabbitmq_prometheus/app.bzl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def all_beam_files(name = "all_beam_files"):
1212
"src/collectors/prometheus_process_collector.erl",
1313
"src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl",
1414
"src/collectors/prometheus_rabbitmq_core_metrics_collector.erl",
15+
"src/collectors/prometheus_rabbitmq_dynamic_collector.erl",
1516
"src/collectors/prometheus_rabbitmq_global_metrics_collector.erl",
1617
"src/rabbit_prometheus_app.erl",
1718
"src/rabbit_prometheus_dispatcher.erl",
@@ -42,6 +43,7 @@ def all_test_beam_files(name = "all_test_beam_files"):
4243
"src/collectors/prometheus_process_collector.erl",
4344
"src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl",
4445
"src/collectors/prometheus_rabbitmq_core_metrics_collector.erl",
46+
"src/collectors/prometheus_rabbitmq_dynamic_collector.erl",
4547
"src/collectors/prometheus_rabbitmq_global_metrics_collector.erl",
4648
"src/rabbit_prometheus_app.erl",
4749
"src/rabbit_prometheus_dispatcher.erl",
@@ -83,6 +85,7 @@ def all_srcs(name = "all_srcs"):
8385
"src/collectors/prometheus_process_collector.erl",
8486
"src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl",
8587
"src/collectors/prometheus_rabbitmq_core_metrics_collector.erl",
88+
"src/collectors/prometheus_rabbitmq_dynamic_collector.erl",
8689
"src/collectors/prometheus_rabbitmq_global_metrics_collector.erl",
8790
"src/rabbit_prometheus_app.erl",
8891
"src/rabbit_prometheus_dispatcher.erl",
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
%%% Collector for dynamic metrics that are calculated at collection time
2+
-module(prometheus_rabbitmq_dynamic_collector).
3+
4+
-behaviour(prometheus_collector).
5+
-include_lib("prometheus/include/prometheus.hrl").
6+
7+
-export([deregister_cleanup/1,
8+
collect_mf/2]).
9+
10+
-define(METRIC_NAME_PREFIX, "rabbitmq_").
11+
12+
-define(METRICS, [{unreachable_cluster_peers_count, gauge,
13+
"Number of peers in the cluster the current node cannot reach."}
14+
]).
15+
16+
%%====================================================================
17+
%% Collector API
18+
%%====================================================================
19+
20+
deregister_cleanup(_) -> ok.
21+
22+
collect_mf(_Registry, Callback) ->
23+
_ = lists:foreach(
24+
fun({Name, Type, Help}) ->
25+
Callback(
26+
prometheus_model_helpers:create_mf(
27+
?METRIC_NAME(Name),
28+
Help,
29+
Type,
30+
values(Name))
31+
)
32+
end,
33+
?METRICS
34+
),
35+
ok.
36+
37+
%%====================================================================
38+
%% Private Parts
39+
%%====================================================================
40+
41+
values(unreachable_cluster_peers_count) ->
42+
[{[], length(rabbit_nodes:list_unreachable())}].

deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ build_dispatcher() ->
1717
prometheus_rabbitmq_core_metrics_collector,
1818
prometheus_rabbitmq_global_metrics_collector,
1919
prometheus_rabbitmq_alarm_metrics_collector,
20+
prometheus_rabbitmq_dynamic_collector,
2021
prometheus_process_collector]),
2122
prometheus_registry:register_collectors('per-object', [
2223
prometheus_vm_system_info_collector,

0 commit comments

Comments
 (0)