use std::{future::Future, time::Instant}; use datadog_statsd::Client; pub mod lookup; pub async fn measure_async<T, Fut: Future<Output = anyhow::Result<T>>>( client: &Client, metric_name: &str, f: Fut, ) -> anyhow::Result<T> { let start = Instant::now(); let res = f.await; let end = Instant::now(); client.timer( metric_name, (end - start).as_millis() as f64, &Some(vec![&format!("success:{}", res.is_ok())]), ); res }