pub struct GroupsDiagnostics { /* private fields */ }Expand description
Process-wide diagnostics table, owned by AppState.
Implementations§
Source§impl GroupsDiagnostics
impl GroupsDiagnostics
Sourcepub fn record_message_received(&self, group_id: &str, now_ms: u64)
pub fn record_message_received(&self, group_id: &str, now_ms: u64)
Record a successfully validated public message. now_ms is the wall-
clock timestamp the caller already has from now_millis_u64().
Sourcepub fn record_decode_failed(&self, group_id: &str)
pub fn record_decode_failed(&self, group_id: &str)
Record a JSON decode failure on the public-message topic.
Record an AuthorBanned rejection.
Sourcepub fn record_write_policy_violation(&self, group_id: &str)
pub fn record_write_policy_violation(&self, group_id: &str)
Record a WritePolicyViolation rejection — the headline counter for
the join-roster-propagation regression: a sudden jump on the owner
side immediately after a joiner posts means the owner’s
members_v2 has not converged yet.
Sourcepub fn record_signature_failed(&self, group_id: &str)
pub fn record_signature_failed(&self, group_id: &str)
Record an InvalidSignature rejection.
Sourcepub fn record_other_drop(&self, group_id: &str)
pub fn record_other_drop(&self, group_id: &str)
Record any other ingest failure (size, group_id mismatch, confidentiality mismatch, etc).
Sourcepub fn record_member_joined(&self, group_id: &str)
pub fn record_member_joined(&self, group_id: &str)
Record a successful application of a MemberJoined metadata event.
Sourcepub fn record_member_joined_rejected_non_member_role(&self, group_id: &str)
pub fn record_member_joined_rejected_non_member_role(&self, group_id: &str)
Record a MemberJoined rejection for a requested role other than Member.
Sourcepub fn record_member_joined_rejected_invite_secret_unknown(
&self,
group_id: &str,
)
pub fn record_member_joined_rejected_invite_secret_unknown( &self, group_id: &str, )
Record a MemberJoined rejection for an unknown invite secret.
Sourcepub fn snapshot(
&self,
groups: &HashMap<String, GroupInfo>,
metadata_subscribed: &HashSet<String>,
public_subscribed: &HashSet<String>,
) -> GroupsDiagnosticsSnapshot
pub fn snapshot( &self, groups: &HashMap<String, GroupInfo>, metadata_subscribed: &HashSet<String>, public_subscribed: &HashSet<String>, ) -> GroupsDiagnosticsSnapshot
Build a snapshot for GET /diagnostics/groups. Joins the live
per-group counters with the caller-supplied members_v2 and
subscription views (the daemon already holds those locks higher up
the call stack, so we keep this function pure-sync).
Trait Implementations§
Source§impl Debug for GroupsDiagnostics
impl Debug for GroupsDiagnostics
Source§impl Default for GroupsDiagnostics
impl Default for GroupsDiagnostics
Source§fn default() -> GroupsDiagnostics
fn default() -> GroupsDiagnostics
Auto Trait Implementations§
impl !Freeze for GroupsDiagnostics
impl RefUnwindSafe for GroupsDiagnostics
impl Send for GroupsDiagnostics
impl Sync for GroupsDiagnostics
impl Unpin for GroupsDiagnostics
impl UnsafeUnpin for GroupsDiagnostics
impl UnwindSafe for GroupsDiagnostics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more