use std::time::Duration;
use vise::Gauge;
pub trait LatencyHistogramExt {
fn observe_latency(&self, latency: time::Duration);
}
impl LatencyHistogramExt for vise::Histogram<Duration> {
fn observe_latency(&self, latency: time::Duration) {
let latency = Duration::try_from(latency).unwrap_or(Duration::ZERO);
self.observe(latency);
}
}
pub trait LatencyGaugeExt {
fn set_latency(&self, latency: time::Duration);
}
impl LatencyGaugeExt for Gauge<Duration> {
fn set_latency(&self, latency: time::Duration) {
let latency = Duration::try_from(latency).unwrap_or(Duration::ZERO);
self.set(latency);
}
}