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§
Sourcefn register_counter(
&self,
name: &str,
description: &str,
labels: &[(&str, &str)],
) -> Arc<dyn CounterFn> ⓘ
fn register_counter( &self, name: &str, description: &str, labels: &[(&str, &str)], ) -> Arc<dyn CounterFn> ⓘ
Register a monotonically increasing counter.
Sourcefn register_gauge(
&self,
name: &str,
description: &str,
labels: &[(&str, &str)],
) -> Arc<dyn GaugeFn> ⓘ
fn register_gauge( &self, name: &str, description: &str, labels: &[(&str, &str)], ) -> Arc<dyn GaugeFn> ⓘ
Register an absolute point-in-time gauge.
Sourcefn register_up_down_counter(
&self,
name: &str,
description: &str,
labels: &[(&str, &str)],
) -> Arc<dyn UpDownCounterFn> ⓘ
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.
Sourcefn register_histogram(
&self,
name: &str,
description: &str,
labels: &[(&str, &str)],
boundaries: &[f64],
) -> Arc<dyn HistogramFn> ⓘ
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".