v2_rum_metrics_UpdateRumMetric/
v2_rum-metrics_UpdateRumMetric.rs

1// Update a rum-based metric returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_rum_metrics::RumMetricsAPI;
4use datadog_api_client::datadogV2::model::RumMetricFilter;
5use datadog_api_client::datadogV2::model::RumMetricGroupBy;
6use datadog_api_client::datadogV2::model::RumMetricType;
7use datadog_api_client::datadogV2::model::RumMetricUpdateAttributes;
8use datadog_api_client::datadogV2::model::RumMetricUpdateCompute;
9use datadog_api_client::datadogV2::model::RumMetricUpdateData;
10use datadog_api_client::datadogV2::model::RumMetricUpdateRequest;
11
12#[tokio::main]
13async fn main() {
14    // there is a valid "rum_metric" in the system
15    let rum_metric_data_id = std::env::var("RUM_METRIC_DATA_ID").unwrap();
16    let body = RumMetricUpdateRequest::new(
17        RumMetricUpdateData::new(
18            RumMetricUpdateAttributes::new()
19                .compute(RumMetricUpdateCompute::new().include_percentiles(false))
20                .filter(RumMetricFilter::new("@service:rum-config".to_string()))
21                .group_by(vec![RumMetricGroupBy::new("@browser.version".to_string())
22                    .tag_name("browser_version".to_string())]),
23            RumMetricType::RUM_METRICS,
24        )
25        .id(rum_metric_data_id.clone()),
26    );
27    let configuration = datadog::Configuration::new();
28    let api = RumMetricsAPI::with_config(configuration);
29    let resp = api
30        .update_rum_metric(rum_metric_data_id.clone(), body)
31        .await;
32    if let Ok(value) = resp {
33        println!("{:#?}", value);
34    } else {
35        println!("{:#?}", resp.unwrap_err());
36    }
37}