v2_rum_metrics_CreateRumMetric/
v2_rum-metrics_CreateRumMetric.rs

1// Create a rum-based metric returns "Created" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_rum_metrics::RumMetricsAPI;
4use datadog_api_client::datadogV2::model::RumMetricCompute;
5use datadog_api_client::datadogV2::model::RumMetricComputeAggregationType;
6use datadog_api_client::datadogV2::model::RumMetricCreateAttributes;
7use datadog_api_client::datadogV2::model::RumMetricCreateData;
8use datadog_api_client::datadogV2::model::RumMetricCreateRequest;
9use datadog_api_client::datadogV2::model::RumMetricEventType;
10use datadog_api_client::datadogV2::model::RumMetricFilter;
11use datadog_api_client::datadogV2::model::RumMetricGroupBy;
12use datadog_api_client::datadogV2::model::RumMetricType;
13use datadog_api_client::datadogV2::model::RumMetricUniqueness;
14use datadog_api_client::datadogV2::model::RumMetricUniquenessWhen;
15
16#[tokio::main]
17async fn main() {
18    let body = RumMetricCreateRequest::new(RumMetricCreateData::new(
19        RumMetricCreateAttributes::new(
20            RumMetricCompute::new(RumMetricComputeAggregationType::DISTRIBUTION)
21                .include_percentiles(true)
22                .path("@duration".to_string()),
23            RumMetricEventType::SESSION,
24        )
25        .filter(RumMetricFilter::new("@service:web-ui".to_string()))
26        .group_by(vec![
27            RumMetricGroupBy::new("@browser.name".to_string()).tag_name("browser_name".to_string())
28        ])
29        .uniqueness(RumMetricUniqueness::new(
30            RumMetricUniquenessWhen::WHEN_MATCH,
31        )),
32        "examplerummetric".to_string(),
33        RumMetricType::RUM_METRICS,
34    ));
35    let configuration = datadog::Configuration::new();
36    let api = RumMetricsAPI::with_config(configuration);
37    let resp = api.create_rum_metric(body).await;
38    if let Ok(value) = resp {
39        println!("{:#?}", value);
40    } else {
41        println!("{:#?}", resp.unwrap_err());
42    }
43}