Skip to content

Commit 7f4335d

Browse files
committed
Display AZ in quorum_status
1 parent 36eb1ec commit 7f4335d

2 files changed

Lines changed: 67 additions & 52 deletions

File tree

deps/rabbit/src/rabbit_queue_location.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
queues_per_node/2]).
2020

2121
-export([build_node_counters/2,
22-
select_members_balanced_fallback/6]).
22+
select_members_balanced_fallback/6,
23+
placement_tag_key/1]).
2324

2425
-ifdef(TEST).
2526
-export([select_members/8, leader_node/6, leader_locator/1]).

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 65 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1497,59 +1497,73 @@ status(#resource{virtual_host = Vhost, name = QueueName}) ->
14971497
status(Q) when ?amqqueue_is_quorum(Q) ->
14981498
{RName, _} = amqqueue:get_pid(Q),
14991499
Nodes = lists:sort(get_nodes(Q)),
1500+
TagKey = rabbit_queue_location:placement_tag_key(Q),
1501+
NodeToAZ = case TagKey of
1502+
undefined -> #{};
1503+
Key -> rabbit_member_placement_az:node_tags_for_nodes(Nodes, Key)
1504+
end,
15001505
[begin
15011506
ServerId = {RName, N},
1502-
case erpc_call(N, ?MODULE, key_metrics_rpc, [ServerId], ?RPC_TIMEOUT) of
1503-
#{state := RaftState,
1504-
membership := Membership,
1505-
commit_index := Commit,
1506-
term := Term,
1507-
last_index := Last,
1508-
last_applied := LastApplied,
1509-
last_written_index := LastWritten,
1510-
snapshot_index := SnapIdx,
1511-
machine_version := MacVer} ->
1512-
[{<<"Node Name">>, N},
1513-
{<<"Raft State">>, RaftState},
1514-
{<<"Membership">>, Membership},
1515-
{<<"Last Log Index">>, Last},
1516-
{<<"Last Written">>, LastWritten},
1517-
{<<"Last Applied">>, LastApplied},
1518-
{<<"Commit Index">>, Commit},
1519-
{<<"Snapshot Index">>, SnapIdx},
1520-
{<<"Term">>, Term},
1521-
{<<"Machine Version">>, MacVer}
1522-
];
1523-
#{state := noproc,
1524-
membership := unknown,
1525-
machine_version := MacVer} ->
1526-
[{<<"Node Name">>, N},
1527-
{<<"Raft State">>, noproc},
1528-
{<<"Membership">>, <<>>},
1529-
{<<"Last Log Index">>, <<>>},
1530-
{<<"Last Written">>, <<>>},
1531-
{<<"Last Applied">>, <<>>},
1532-
{<<"Commit Index">>, <<>>},
1533-
{<<"Snapshot Index">>, <<>>},
1534-
{<<"Term">>, <<>>},
1535-
{<<"Machine Version">>, MacVer}
1536-
];
1537-
{error, Reason} ->
1538-
State = case is_atom(Reason) of
1539-
true -> Reason;
1540-
false -> unknown
1541-
end,
1542-
[{<<"Node Name">>, N},
1543-
{<<"Raft State">>, State},
1544-
{<<"Membership">>, <<>>},
1545-
{<<"Last Log Index">>, <<>>},
1546-
{<<"Last Written">>, <<>>},
1547-
{<<"Last Applied">>, <<>>},
1548-
{<<"Commit Index">>, <<>>},
1549-
{<<"Snapshot Index">>, <<>>},
1550-
{<<"Term">>, <<>>},
1551-
{<<"Machine Version">>, <<>>}
1552-
]
1507+
BaseRow = case erpc_call(N, ?MODULE, key_metrics_rpc, [ServerId], ?RPC_TIMEOUT) of
1508+
#{state := RaftState,
1509+
membership := Membership,
1510+
commit_index := Commit,
1511+
term := Term,
1512+
last_index := Last,
1513+
last_applied := LastApplied,
1514+
last_written_index := LastWritten,
1515+
snapshot_index := SnapIdx,
1516+
machine_version := MacVer} ->
1517+
[{<<"Node Name">>, N},
1518+
{<<"Raft State">>, RaftState},
1519+
{<<"Membership">>, Membership},
1520+
{<<"Last Log Index">>, Last},
1521+
{<<"Last Written">>, LastWritten},
1522+
{<<"Last Applied">>, LastApplied},
1523+
{<<"Commit Index">>, Commit},
1524+
{<<"Snapshot Index">>, SnapIdx},
1525+
{<<"Term">>, Term},
1526+
{<<"Machine Version">>, MacVer}
1527+
];
1528+
#{state := noproc,
1529+
membership := unknown,
1530+
machine_version := MacVer} ->
1531+
[{<<"Node Name">>, N},
1532+
{<<"Raft State">>, noproc},
1533+
{<<"Membership">>, <<>>},
1534+
{<<"Last Log Index">>, <<>>},
1535+
{<<"Last Written">>, <<>>},
1536+
{<<"Last Applied">>, <<>>},
1537+
{<<"Commit Index">>, <<>>},
1538+
{<<"Snapshot Index">>, <<>>},
1539+
{<<"Term">>, <<>>},
1540+
{<<"Machine Version">>, MacVer}
1541+
];
1542+
{error, Reason} ->
1543+
State = case is_atom(Reason) of
1544+
true -> Reason;
1545+
false -> unknown
1546+
end,
1547+
[{<<"Node Name">>, N},
1548+
{<<"Raft State">>, State},
1549+
{<<"Membership">>, <<>>},
1550+
{<<"Last Log Index">>, <<>>},
1551+
{<<"Last Written">>, <<>>},
1552+
{<<"Last Applied">>, <<>>},
1553+
{<<"Commit Index">>, <<>>},
1554+
{<<"Snapshot Index">>, <<>>},
1555+
{<<"Term">>, <<>>},
1556+
{<<"Machine Version">>, <<>>}
1557+
]
1558+
end,
1559+
case TagKey of
1560+
undefined -> BaseRow;
1561+
_ -> AZ = case maps:get(N, NodeToAZ, undefined) of
1562+
undefined -> <<>>;
1563+
Val -> Val
1564+
end,
1565+
[NodeName | Rest] = BaseRow,
1566+
[NodeName, {<<"AZ">>, AZ} | Rest]
15531567
end
15541568
end || N <- Nodes].
15551569

0 commit comments

Comments
 (0)