Skip to main content

ProtocolMetrics

Struct ProtocolMetrics 

Source
pub struct ProtocolMetrics {
    pub connections_total: AtomicU64,
    pub connections_active: AtomicU64,
    pub messages_total: AtomicU64,
    pub errors_total: AtomicU64,
    pub bytes_sent: AtomicU64,
    pub bytes_received: AtomicU64,
    pub latency_micros: AtomicU64,
}
Expand description

Generic metrics collector shared by all protocol crates.

Contains the common counters that every protocol needs. Protocol crates can embed this struct and add protocol-specific fields alongside it.

Fields§

§connections_total: AtomicU64

Total number of connections ever established

§connections_active: AtomicU64

Currently active connections

§messages_total: AtomicU64

Total messages processed (sent or received, depending on protocol)

§errors_total: AtomicU64

Total errors encountered

§bytes_sent: AtomicU64

Total bytes sent

§bytes_received: AtomicU64

Total bytes received

§latency_micros: AtomicU64

Average latency in microseconds (simple moving average)

Implementations§

Source§

impl ProtocolMetrics

Source

pub fn new() -> Self

Create a new metrics collector with all counters at zero.

Source

pub fn record_connection(&self)

Record a new connection (increments both total and active).

Source

pub fn record_disconnection(&self)

Record a disconnection (decrements active connections).

Source

pub fn record_message(&self)

Record a message processed.

Source

pub fn record_messages(&self, count: u64)

Record multiple messages processed at once.

Source

pub fn record_error(&self)

Record an error.

Source

pub fn record_bytes_sent(&self, bytes: u64)

Record bytes sent.

Source

pub fn record_bytes_received(&self, bytes: u64)

Record bytes received.

Source

pub fn record_latency(&self, latency_micros: u64)

Record latency in microseconds (simple moving average).

Source

pub fn snapshot(&self) -> ProtocolMetricsSnapshot

Take a point-in-time snapshot of all counters.

Source

pub fn export_prometheus(&self, prefix: &str) -> String

Export common metrics in Prometheus format with a given protocol prefix.

§Arguments
  • prefix - Protocol name for metric labels (e.g., “kafka”, “mqtt”)

Trait Implementations§

Source§

impl Debug for ProtocolMetrics

Source§

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

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

impl Default for ProtocolMetrics

Source§

fn default() -> Self

Returns the “default value” for a type. 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<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, 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
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,