@@ -560,12 +560,29 @@ handle_tick(QName,
560560 num_discarded := NumDiscarded ,
561561 num_discard_checked_out := NumDiscardedCheckedOut ,
562562 discard_message_bytes := DiscardBytes ,
563- discard_checkout_message_bytes := DiscardCheckoutBytes ,
564- smallest_raft_index : = _ } = Overview ,
565- Nodes ) ->
563+ discard_checkout_message_bytes := DiscardCheckoutBytes
564+ } = Overview ,
565+ KnownNodes ) ->
566566 % % this makes calls to remote processes so cannot be run inside the
567567 % % ra server
568568 Self = self (),
569+ MembersInfo0 = maps :get (members_info , Overview , #{}),
570+ RaOverview0 = maps :get (ra_overview , Overview , #{}),
571+ RaOverview = maps :update_with (log ,
572+ fun (L ) ->
573+ maps :with ([last_index ,
574+ first_index ,
575+ last_written_index ,
576+ last_wal_write ,
577+ lastest_checkpoint_index ],
578+ case L of
579+ #{last_written_index_term := {I , _ }} = LO ->
580+ LO #{last_written_index => I };
581+ LO ->
582+ LO
583+ end )
584+ end , #{}, RaOverview0 ),
585+
569586 spawn (
570587 fun () ->
571588 try
@@ -600,6 +617,17 @@ handle_tick(QName,
600617 end , info (Q , Keys ), Overview ),
601618 MsgBytesDiscarded = DiscardBytes + DiscardCheckoutBytes ,
602619 MsgBytes = EnqueueBytes + CheckoutBytes + MsgBytesDiscarded ,
620+ MembersInfo = maps :fold (fun
621+ ({_ , N }, Val0 , Acc ) ->
622+ Val = maps :map (
623+ fun (status , {S , _ }) ->
624+ S ;
625+ (_K , V ) ->
626+ V
627+ end , Val0 ),
628+ Acc #{N => Val }
629+ end , #{}, MembersInfo0 ),
630+
603631 Infos = [{consumers , NumConsumers },
604632 {publishers , NumEnqueuers },
605633 {consumer_capacity , Util },
@@ -620,7 +648,12 @@ handle_tick(QName,
620648 unlimited ;
621649 Limit ->
622650 Limit
623- end }
651+ end },
652+ {members_info , MembersInfo },
653+ {raft , maps :with ([current_term ,
654+ commit_index ,
655+ last_applied ,
656+ log ], RaOverview )}
624657 | Infos0 ],
625658 rabbit_core_metrics :queue_stats (QName , Infos ),
626659 ok = repair_leader_record (Q , Self ),
@@ -631,7 +664,7 @@ handle_tick(QName,
631664 rabbit_log :debug (" Repaired quorum queue ~ts amqqueue record" , [rabbit_misc :rs (QName )])
632665 end ,
633666 ExpectedNodes = rabbit_nodes :list_members (),
634- case Nodes -- ExpectedNodes of
667+ case KnownNodes -- ExpectedNodes of
635668 [] ->
636669 ok ;
637670 Stale when length (ExpectedNodes ) > 0 ->
0 commit comments