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§
Sourcefn put_metric(&self, metric: Metric) -> MetricsResult<()>
fn put_metric(&self, metric: Metric) -> MetricsResult<()>
Store or update a metric
Sourcefn get_metric(&self, id: &MetricId) -> MetricsResult<Metric>
fn get_metric(&self, id: &MetricId) -> MetricsResult<Metric>
Retrieve a metric by ID
Sourcefn contains_metric(&self, id: &MetricId) -> bool
fn contains_metric(&self, id: &MetricId) -> bool
Check if a metric exists
Sourcefn remove_metric(&self, id: &MetricId) -> MetricsResult<()>
fn remove_metric(&self, id: &MetricId) -> MetricsResult<()>
Remove a metric
Sourcefn list_metric_ids(&self) -> Vec<MetricId>
fn list_metric_ids(&self) -> Vec<MetricId>
Get all metric IDs currently stored
Sourcefn list_all_metrics(&self) -> Vec<Metric>
fn list_all_metrics(&self) -> Vec<Metric>
Get all metrics (potentially expensive operation)
Sourcefn metric_count(&self) -> usize
fn metric_count(&self) -> usize
Get the number of metrics stored
Provided Methods§
Sourcefn increment_counter(&self, id: &MetricId, delta: u64) -> MetricsResult<u64>
fn increment_counter(&self, id: &MetricId, delta: u64) -> MetricsResult<u64>
Increment a counter by the given amount
Sourcefn record_histogram_sample(
&self,
id: &MetricId,
sample: f64,
) -> MetricsResult<()>
fn record_histogram_sample( &self, id: &MetricId, sample: f64, ) -> MetricsResult<()>
Add a sample to a histogram