docs_metrics/
docs_metrics.rs1use s2_sdk::{
6 S2,
7 types::{
8 AccountMetricSet, BasinMetricSet, GetAccountMetricsInput, GetBasinMetricsInput,
9 GetStreamMetricsInput, S2Config, StreamMetricSet, TimeRange,
10 },
11};
12
13#[tokio::main]
14async fn main() -> Result<(), Box<dyn std::error::Error>> {
15 let access_token = std::env::var("S2_ACCESS_TOKEN")?;
16 let client = S2::new(S2Config::new(access_token))?;
17
18 let now = std::time::SystemTime::now()
20 .duration_since(std::time::UNIX_EPOCH)?
21 .as_secs() as u32;
22 let thirty_days_ago = now - 30 * 24 * 3600;
23 let six_hours_ago = now - 6 * 3600;
24 let hour_ago = now - 3600;
25
26 let account_metrics = client
28 .get_account_metrics(GetAccountMetricsInput::new(AccountMetricSet::ActiveBasins(
29 TimeRange::new(thirty_days_ago, now),
30 )))
31 .await?;
32
33 let basin_metrics = client
35 .get_basin_metrics(GetBasinMetricsInput::new(
36 "events".parse()?,
37 BasinMetricSet::Storage(TimeRange::new(six_hours_ago, now)),
38 ))
39 .await?;
40
41 let stream_metrics = client
43 .get_stream_metrics(GetStreamMetricsInput::new(
44 "events".parse()?,
45 "user-actions".parse()?,
46 StreamMetricSet::Storage(TimeRange::new(hour_ago, now)),
47 ))
48 .await?;
49 println!(
52 "{:?} {:?} {:?}",
53 account_metrics, basin_metrics, stream_metrics
54 );
55
56 Ok(())
57}