Expand description
Metrics macros and DogStatsD initialization for Objectstore.
This crate provides three things:
counter!,gauge!, anddistribution!macros that preserve a concise call-site syntax ("name": value, "tag" => tag_value).MetricsConfigandinitfor wiring up a DogStatsD exporter.with_capturing_test_clientfor asserting on emitted metrics in tests.
§Usage
use std::time::Duration;
use objectstore_metrics::{counter, distribution, gauge};
let count = 42_u64;
let elapsed = Duration::from_secs(1);
let route = "api/v1";
counter!("server.start": 1);
gauge!("server.requests.in_flight": count);
distribution!("server.requests.duration"@s: elapsed, "route" => route);§Unit annotations
@sconverts aDurationto seconds via.as_secs_f64().@bconverts the value viaas f64(identity for byte counts).- No annotation also converts via
as f64.
Macros§
- counter
- Emits a counter metric.
- distribution
- Emits a distribution (histogram) metric.
- gauge
- Emits a gauge metric.
Structs§
- Metrics
Config - Configuration for the DogStatsD metrics exporter.
Enums§
- Error
- Error type for metrics initialization.
Functions§
- init
- Initializes the global DogStatsD metrics exporter.
- with_
capturing_ test_ client - Runs
fwith a thread-local mock recorder installed, then returns all captured metrics as"name:value|type|#key:value,key:value"strings.