Skip to content

Commit

Permalink
Add a 'raft_cluster' prometheus tag for a Ra cluster name to ra_metrics
Browse files Browse the repository at this point in the history
Adds a `<<"raft_cluster">>` tag for ra_metrics emitted by QQs, the
stream coordinator, and Khepri.

Before:

    $ curl -s "localhost:15692/metrics/detailed?family=ra_metrics" | grep rabbitmq_detailed_raft_log_last_written_index
    # TYPE rabbitmq_detailed_raft_log_last_written_index gauge
    # HELP rabbitmq_detailed_raft_log_last_written_index Raft log last written index
    rabbitmq_detailed_raft_log_last_written_index 0
    rabbitmq_detailed_raft_log_last_written_index{vhost="/",queue="qq"} 0
    rabbitmq_detailed_raft_log_last_written_index 11

After:

    $ curl -s "localhost:15692/metrics/detailed?family=ra_metrics" | grep rabbitmq_detailed_raft_log_last_written_index
    # TYPE rabbitmq_detailed_raft_log_last_written_index gauge
    # HELP rabbitmq_detailed_raft_log_last_written_index Raft log last written index
    rabbitmq_detailed_raft_log_last_written_index{raft_cluster="rabbitmq_metadata"} 11
    rabbitmq_detailed_raft_log_last_written_index{queue="qq",raft_cluster="%2F_qq",vhost="/"} 51
    rabbitmq_detailed_raft_log_last_written_index{raft_cluster="rabbit_stream_coordinator"} 0
  • Loading branch information
the-mikedavis committed Aug 28, 2024
1 parent afa28cb commit e08083a
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
4 changes: 3 additions & 1 deletion deps/rabbit/src/rabbit_khepri.erl
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,10 @@ setup(_) ->
{default_store_id, ?STORE_ID},
{default_ra_system, ?RA_SYSTEM}]}],
[{persistent, true}]),
MetricsKey = #{<<"raft_cluster">> => atom_to_binary(?RA_CLUSTER_NAME)},
RaServerConfig = #{cluster_name => ?RA_CLUSTER_NAME,
friendly_name => ?RA_FRIENDLY_NAME},
friendly_name => ?RA_FRIENDLY_NAME,
metrics_key => MetricsKey},
case khepri:start(?RA_SYSTEM, RaServerConfig) of
{ok, ?STORE_ID} ->
wait_for_leader(),
Expand Down
8 changes: 6 additions & 2 deletions deps/rabbit/src/rabbit_quorum_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1867,7 +1867,8 @@ make_ra_conf(Q, ServerId, Membership) ->

make_ra_conf(Q, ServerId, TickTimeout,
SnapshotInterval, CheckpointInterval, Membership) ->
QName = amqqueue:get_name(Q),
#resource{name = QNameBin, virtual_host = VHostName} = QName =
amqqueue:get_name(Q),
RaMachine = ra_machine(Q),
[{ClusterName, _} | _] = Members = members(Q),
UId = ra:new_uid(ra_lib:to_binary(ClusterName)),
Expand All @@ -1877,12 +1878,15 @@ make_ra_conf(Q, ServerId, TickTimeout,
snapshot_interval => SnapshotInterval,
min_checkpoint_interval => CheckpointInterval,
max_checkpoints => 3},
MetricsKey = #{<<"queue">> => QNameBin,
<<"vhost">> => VHostName,
<<"raft_cluster">> => atom_to_binary(ClusterName, utf8)},
rabbit_misc:maps_put_truthy(membership, Membership,
#{cluster_name => ClusterName,
id => ServerId,
uid => UId,
friendly_name => FName,
metrics_key => QName,
metrics_key => MetricsKey,
initial_members => Members,
log_init_args => LogCfg,
tick_timeout => TickTimeout,
Expand Down
3 changes: 2 additions & 1 deletion deps/rabbit/src/rabbit_stream_coordinator.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1256,11 +1256,12 @@ make_ra_conf(Node, Nodes) ->
Members = [{?MODULE, N} || N <- Nodes],
TickTimeout = application:get_env(rabbit, stream_tick_interval,
?TICK_TIMEOUT),
MetricsKey = #{<<"raft_cluster">> => atom_to_binary(?MODULE)},
#{cluster_name => ?MODULE,
id => {?MODULE, Node},
uid => UId,
friendly_name => atom_to_list(?MODULE),
metrics_key => ?MODULE,
metrics_key => MetricsKey,
initial_members => Members,
log_init_args => #{uid => UId},
tick_timeout => TickTimeout,
Expand Down

0 comments on commit e08083a

Please sign in to comment.