#[non_exhaustive]pub struct GetStreamMetricsInput {
pub basin_name: BasinName,
pub stream_name: StreamName,
pub set: StreamMetricSet,
}Expand description
Input for get_stream_metrics operation.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.basin_name: BasinNameBasin name.
stream_name: StreamNameStream name.
set: StreamMetricSetMetric set to return.
Implementations§
Source§impl GetStreamMetricsInput
impl GetStreamMetricsInput
Sourcepub fn new(
basin_name: BasinName,
stream_name: StreamName,
set: StreamMetricSet,
) -> Self
pub fn new( basin_name: BasinName, stream_name: StreamName, set: StreamMetricSet, ) -> Self
Create a new GetStreamMetricsInput with the given basin name, stream name and metric
set.
Examples found in repository?
examples/docs_metrics.rs (lines 43-47)
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 // ANCHOR: metrics
19 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 // Account-level: active basins over the last 30 days
27 let account_metrics = client
28 .get_account_metrics(GetAccountMetricsInput::new(AccountMetricSet::ActiveBasins(
29 TimeRange::new(thirty_days_ago, now),
30 )))
31 .await?;
32
33 // Basin-level: storage usage with hourly resolution
34 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 // Stream-level: storage for a specific stream
42 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 // ANCHOR_END: metrics
50
51 println!(
52 "{:?} {:?} {:?}",
53 account_metrics, basin_metrics, stream_metrics
54 );
55
56 Ok(())
57}Trait Implementations§
Source§impl Clone for GetStreamMetricsInput
impl Clone for GetStreamMetricsInput
Source§fn clone(&self) -> GetStreamMetricsInput
fn clone(&self) -> GetStreamMetricsInput
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GetStreamMetricsInput
impl Debug for GetStreamMetricsInput
Source§impl From<GetStreamMetricsInput> for (BasinName, StreamName, StreamMetricSetRequest)
impl From<GetStreamMetricsInput> for (BasinName, StreamName, StreamMetricSetRequest)
Source§fn from(value: GetStreamMetricsInput) -> Self
fn from(value: GetStreamMetricsInput) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for GetStreamMetricsInput
impl RefUnwindSafe for GetStreamMetricsInput
impl Send for GetStreamMetricsInput
impl Sync for GetStreamMetricsInput
impl Unpin for GetStreamMetricsInput
impl UnsafeUnpin for GetStreamMetricsInput
impl UnwindSafe for GetStreamMetricsInput
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more