Skip to main content

MetricsRecorder

Trait MetricsRecorder 

Source
pub trait MetricsRecorder: Send + Sync {
    // Required methods
    fn register_counter(
        &self,
        name: &str,
        description: &str,
        labels: &[(&str, &str)],
    ) -> Arc<dyn CounterFn> ;
    fn register_gauge(
        &self,
        name: &str,
        description: &str,
        labels: &[(&str, &str)],
    ) -> Arc<dyn GaugeFn> ;
    fn register_up_down_counter(
        &self,
        name: &str,
        description: &str,
        labels: &[(&str, &str)],
    ) -> Arc<dyn UpDownCounterFn> ;
    fn register_histogram(
        &self,
        name: &str,
        description: &str,
        labels: &[(&str, &str)],
        boundaries: &[f64],
    ) -> Arc<dyn HistogramFn> ;
}
Expand description

Registers backend-owned metric handles used directly by Chorus.

Labels are fixed when a handle is registered. Implementations should return another handle for the same backend time series when a name and label set is registered more than once, allowing several WAL volumes to share a registry.

Most Chorus metrics currently register with an empty label set; the per-replica durable-lag gauge adds only zone. Applications that construct several volumes over one backend recorder should therefore pass each volume a small recorder adapter that injects a stable wal or volume label into every registration while preserving labels supplied here. Passing the same recorder directly makes different volumes aggregate indistinguishably.

Required Methods§

Source

fn register_counter( &self, name: &str, description: &str, labels: &[(&str, &str)], ) -> Arc<dyn CounterFn>

Register a monotonically increasing counter.

Source

fn register_gauge( &self, name: &str, description: &str, labels: &[(&str, &str)], ) -> Arc<dyn GaugeFn>

Register an absolute point-in-time gauge.

Source

fn register_up_down_counter( &self, name: &str, description: &str, labels: &[(&str, &str)], ) -> Arc<dyn UpDownCounterFn>

Register an additive counter that may increase or decrease.

Source

fn register_histogram( &self, name: &str, description: &str, labels: &[(&str, &str)], boundaries: &[f64], ) -> Arc<dyn HistogramFn>

Register a histogram with the requested bucket boundaries.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§