Skip to main content

RuntimeReport

Struct RuntimeReport 

Source
pub struct RuntimeReport {
Show 14 fields pub retained_accounts: usize, pub managed_accounts: usize, pub lingering_accounts: usize, pub retiring_accounts: usize, pub restarting_accounts: usize, pub manager_restarts: u64, pub unrecovered_grants: u64, pub uncertain_acquires: u64, pub counter_overflow: bool, pub refill: Option<LeaseStats>, pub snapshots: SnapshotStats, pub accounting: WriterHealth, pub sharding: ShardOccupancy, pub contention: ContentionReport,
}
Expand description

Instance-wide aggregate of the runtime’s accounts, refill, snapshot and accounting counters, from RuntimeHandle::report. Safe to expose as metrics: it carries no per-account labels except the bounded ContentionReport::hottest list.

Fields§

§retained_accounts: usize

Accounts with a lease slot on this instance. Slots are kept for the process’s life because they carry irreversible overage spend, so this only grows.

§managed_accounts: usize

Accounts with a live lease manager: running or lingering.

§lingering_accounts: usize

Of managed_accounts, those no longer eligible and waiting out InstanceRuntimeConfig::idle_account_linger.

§retiring_accounts: usize

Accounts whose manager is releasing its leases and not yet joined.

§restarting_accounts: usize

Accounts waiting out InstanceRuntimeConfig::manager_restart_backoff after their manager exited unexpectedly.

§manager_restarts: u64

Manager restarts after an unexpected exit, summed across accounts. Nonzero means a lease manager died; a rising count means one keeps dying.

§unrecovered_grants: u64

Summed across accounts: see AccountReport::unrecovered_grants. Nonzero is crash exposure — granted units that return only at TTL reclaim (INVARIANTS.md 9).

§uncertain_acquires: u64

Summed across accounts: see AccountReport::uncertain_acquires.

§counter_overflow: bool

Some counter in this report, or one it aggregates, exceeded u64 and is saturated. Totals are then lower bounds, never wrapped values.

§refill: Option<LeaseStats>

Refill counters summed across every account, including managers that have since retired or died. None when the sum overflowed.

§snapshots: SnapshotStats

The snapshot task’s counters.

§accounting: WriterHealth

The usage writer’s accounting health.

§sharding: ShardOccupancy

What this instance’s shard layout is carrying (GL-124).

Sharding buys one thing — a request-serving thread writing to lines no peer writes — and that holds only while the affinities handed out do not outnumber the shards. When it stops holding, the instance degrades toward the unsharded cost while looking exactly like the contention the layout was enabled to remove, so it is reported rather than left to be inferred from latency. ShardOccupancy::is_crowded is the question; docs/LOCAL_SHARDING.md is what to do about the answer.

§contention: ContentionReport

Admission exchanges that lost a race to another core, per account: lease and overage debits and concurrency-gauge acquisitions (GL-134, GL-139).

Which accounts, if any, are hot enough on this instance that their funding line is written from several cores at once — the condition opt-in lease sharding exists for (docs/LOCAL_SHARDING.md). Cumulative since the process started, so read it as a rate between reports.

Trait Implementations§

Source§

impl Clone for RuntimeReport

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RuntimeReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more