v2_logs_metrics_UpdateLogsMetric/
v2_logs-metrics_UpdateLogsMetric.rs

1// Update a log-based metric returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_logs_metrics::LogsMetricsAPI;
4use datadog_api_client::datadogV2::model::LogsMetricFilter;
5use datadog_api_client::datadogV2::model::LogsMetricType;
6use datadog_api_client::datadogV2::model::LogsMetricUpdateAttributes;
7use datadog_api_client::datadogV2::model::LogsMetricUpdateData;
8use datadog_api_client::datadogV2::model::LogsMetricUpdateRequest;
9
10#[tokio::main]
11async fn main() {
12    // there is a valid "logs_metric" in the system
13    let logs_metric_data_id = std::env::var("LOGS_METRIC_DATA_ID").unwrap();
14    let body = LogsMetricUpdateRequest::new(LogsMetricUpdateData::new(
15        LogsMetricUpdateAttributes::new().filter(
16            LogsMetricFilter::new()
17                .query("service:web* AND @http.status_code:[200 TO 299]-updated".to_string()),
18        ),
19        LogsMetricType::LOGS_METRICS,
20    ));
21    let configuration = datadog::Configuration::new();
22    let api = LogsMetricsAPI::with_config(configuration);
23    let resp = api
24        .update_logs_metric(logs_metric_data_id.clone(), body)
25        .await;
26    if let Ok(value) = resp {
27        println!("{:#?}", value);
28    } else {
29        println!("{:#?}", resp.unwrap_err());
30    }
31}