Skip to main content

Traffic

Struct Traffic 

Source
#[non_exhaustive]
pub struct Traffic { pub announced: u64, pub announced_closed: u64, pub announced_bytes: u64, pub broadcasts: u64, pub broadcasts_closed: u64, pub subscriptions: u64, pub subscriptions_closed: u64, pub fetches: u64, pub bytes: u64, pub frames: u64, pub groups: u64, pub datagrams: u64, }
Expand description

A cumulative traffic counter readout for one slice (a broadcast on a (tier, role), or any sum of such slices).

Every counter is cumulative, so a rate is delta / delta_t and a live count is open - closed. This is also the wire shape of one entry on a published stats track (the moq-stats crate serializes maps of these), so it derives both serde directions; unknown fields from a newer publisher are ignored and missing fields from an older one default to zero.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§announced: u64

Cumulative broadcast announce events on this slice.

§announced_closed: u64

Cumulative broadcast unannounce events on this slice.

§announced_bytes: u64

Cumulative announce-control bytes: the broadcast name length summed over each announce and unannounce. Distinct from bytes (payload).

§broadcasts: u64

Per-(broadcast, session) subscription sentinel opens: the first active subscription a session holds on a broadcast.

§broadcasts_closed: u64

Sentinel closes: the session’s last subscription to the broadcast ended.

§subscriptions: u64

Cumulative track-level subscriptions opened.

§subscriptions_closed: u64

Cumulative track-level subscriptions closed.

§fetches: u64

Cumulative one-shot group fetches requested. Counted once per coalesced fetch when the fetch is issued, so one that resolves to NotFound still counts. Separate from subscriptions and the viewer refcount. Fetched payload still flows into bytes/frames/groups.

§bytes: u64

Cumulative payload bytes.

§frames: u64

Cumulative frames delivered.

§groups: u64

Cumulative groups delivered.

§datagrams: u64

Cumulative single-frame groups delivered over an unreliable QUIC datagram. A subset of groups: each one also counts there and its payload in frames / bytes.

Implementations§

Source§

impl Traffic

Source

pub fn add(&mut self, other: Traffic)

Fold another readout into this one, counter by counter.

Source

pub fn is_announced(&self) -> bool

True while the broadcast is announced (an announce guard is open).

Source

pub fn active_broadcasts(&self) -> u64

Distinct sessions currently subscribed (viewers on the egress side).

Source

pub fn active_subscriptions(&self) -> u64

Track subscriptions currently open.

Source

pub fn total_bytes(&self) -> u64

All bytes attributable to this slice: payload plus announce overhead. Both inputs are monotonic, so the sum regresses only when the entry was garbage collected and re-created.

Source

pub fn is_idle(&self) -> bool

True once every open counter equals its closed counterpart: no guard is held, so no more traffic can flow until a new open.

Trait Implementations§

Source§

impl Clone for Traffic

Source§

fn clone(&self) -> Traffic

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 Copy for Traffic

Source§

impl Debug for Traffic

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Traffic

Source§

fn default() -> Traffic

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Traffic

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Traffic

Source§

impl PartialEq for Traffic

Source§

fn eq(&self, other: &Traffic) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Traffic

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Traffic

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<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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSync for T
where T: Sync,

Source§

impl<T> MaybeSync for T
where T: Sync,

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<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