Trait MetricsBackend

Source
pub trait MetricsBackend:
    Send
    + Sync
    + Debug
    + 'static {
    // Required methods
    fn as_any(&self) -> &dyn Any;
    fn put_metric(&self, metric: Metric) -> MetricsResult<()>;
    fn get_metric(&self, id: &MetricId) -> MetricsResult<Metric>;
    fn contains_metric(&self, id: &MetricId) -> bool;
    fn remove_metric(&self, id: &MetricId) -> MetricsResult<()>;
    fn list_metric_ids(&self) -> Vec<MetricId>;
    fn list_all_metrics(&self) -> Vec<Metric>;
    fn clear_all(&self) -> MetricsResult<()>;
    fn metric_count(&self) -> usize;

    // Provided methods
    fn increment_counter(&self, id: &MetricId, delta: u64) -> MetricsResult<u64> { ... }
    fn set_gauge(&self, id: &MetricId, value: f64) -> MetricsResult<()> { ... }
    fn record_histogram_sample(
        &self,
        id: &MetricId,
        sample: f64,
    ) -> MetricsResult<()> { ... }
}
Expand description

Trait defining the interface for metrics storage backends

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Get a reference to this object as Any for downcasting

Source

fn put_metric(&self, metric: Metric) -> MetricsResult<()>

Store or update a metric

Source

fn get_metric(&self, id: &MetricId) -> MetricsResult<Metric>

Retrieve a metric by ID

Source

fn contains_metric(&self, id: &MetricId) -> bool

Check if a metric exists

Source

fn remove_metric(&self, id: &MetricId) -> MetricsResult<()>

Remove a metric

Source

fn list_metric_ids(&self) -> Vec<MetricId>

Get all metric IDs currently stored

Source

fn list_all_metrics(&self) -> Vec<Metric>

Get all metrics (potentially expensive operation)

Source

fn clear_all(&self) -> MetricsResult<()>

Clear all metrics

Source

fn metric_count(&self) -> usize

Get the number of metrics stored

Provided Methods§

Source

fn increment_counter(&self, id: &MetricId, delta: u64) -> MetricsResult<u64>

Increment a counter by the given amount

Source

fn set_gauge(&self, id: &MetricId, value: f64) -> MetricsResult<()>

Set a gauge value

Source

fn record_histogram_sample( &self, id: &MetricId, sample: f64, ) -> MetricsResult<()>

Add a sample to a histogram

Implementors§