Skip to main content

agentmail/client/
metrics.rs

1use crate::client::NoBody;
2use crate::client::scope::{Metrics, Scoped};
3use crate::{Error, types::*};
4
5impl<S: Metrics> Scoped<'_, S> {
6    /// GET `{scope}/metrics/events`, event counts bucketed over time, keyed by
7    /// event type.
8    pub async fn get_metrics_events(&self, query: MetricsQuery) -> Result<MetricsEvents, Error> {
9        self.client
10            .request(
11                reqwest::Method::GET,
12                &format!("{}/metrics/events", self.base()),
13                &query.query("event_types"),
14                None::<&NoBody>,
15            )
16            .await
17    }
18
19    /// GET `{scope}/metrics/usage`, usage values bucketed over time, keyed by
20    /// usage type.
21    pub async fn get_metrics_usage(&self, query: MetricsQuery) -> Result<MetricsUsage, Error> {
22        self.client
23            .request(
24                reqwest::Method::GET,
25                &format!("{}/metrics/usage", self.base()),
26                &query.query("usage_types"),
27                None::<&NoBody>,
28            )
29            .await
30    }
31}