Skip to main content

MaxGauge

Struct MaxGauge 

Source
pub struct MaxGauge { /* private fields */ }
Expand description

A thread-sharded maximum tracker exported as a gauge.

This is useful for recording peaks such as maximum queue depth or the highest number of in-flight requests seen during an export interval.

Unlike crate::Gauge, this is not a point-in-time set() value. Writers call observe, and readers aggregate by taking the maximum across shards.

Implementations§

Source§

impl MaxGauge

Source

pub fn new(shard_count: usize) -> Self

Create a new max gauge with all shards initialized to zero.

This is appropriate for metrics that are naturally non-negative.

Source

pub fn with_value(shard_count: usize, initial: i64) -> Self

Create a new max gauge with all shards initialized to initial.

Source

pub fn observe(&self, value: i64)

Record a candidate value for the maximum.

Source

pub fn get(&self) -> i64

Return the current maximum across all shards.

Source

pub fn reset(&self)

Reset all shards to the original value configured at construction.

This is intended for export/sampling code, not the hot path.

Source

pub fn swap_reset(&self) -> i64

Reset all shards and return the previous maximum.

Concurrent observations that land on already-reset shards may be attributed to the next window rather than the current one. No maxima are lost, but timing near the reset boundary is eventually consistent in the same way as crate::Counter::swap.

Trait Implementations§

Source§

impl ClickHouseExport for MaxGauge

Source§

fn export_clickhouse( &self, batch: &mut ClickHouseMetricBatch, name: &str, description: &str, time_unix_nano: u64, )

Source§

impl Debug for MaxGauge

Source§

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

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

impl Default for MaxGauge

Source§

fn default() -> Self

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

impl DogStatsDExport for MaxGauge

Source§

fn export_dogstatsd( &self, output: &mut String, name: &str, tags: &[(&str, &str)], )

Export this metric to the output string in DogStatsD format. Read more
Source§

impl OtlpExport for MaxGauge

Source§

fn export_otlp( &self, metrics: &mut Vec<Metric>, name: &str, description: &str, time_unix_nano: u64, )

Source§

impl PrometheusExport for MaxGauge

Source§

fn export_prometheus(&self, output: &mut String, name: &str, help: &str)

Export this metric to the output string. 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> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
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<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