v2_spans_metrics_CreateSpansMetric/
v2_spans-metrics_CreateSpansMetric.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_spans_metrics::SpansMetricsAPI;
4use datadog_api_client::datadogV2::model::SpansMetricCompute;
5use datadog_api_client::datadogV2::model::SpansMetricComputeAggregationType;
6use datadog_api_client::datadogV2::model::SpansMetricCreateAttributes;
7use datadog_api_client::datadogV2::model::SpansMetricCreateData;
8use datadog_api_client::datadogV2::model::SpansMetricCreateRequest;
9use datadog_api_client::datadogV2::model::SpansMetricFilter;
10use datadog_api_client::datadogV2::model::SpansMetricGroupBy;
11use datadog_api_client::datadogV2::model::SpansMetricType;
12
13#[tokio::main]
14async fn main() {
15 let body = SpansMetricCreateRequest::new(SpansMetricCreateData::new(
16 SpansMetricCreateAttributes::new(
17 SpansMetricCompute::new(SpansMetricComputeAggregationType::DISTRIBUTION)
18 .include_percentiles(false)
19 .path("@duration".to_string()),
20 )
21 .filter(
22 SpansMetricFilter::new().query("@http.status_code:200 service:my-service".to_string()),
23 )
24 .group_by(vec![SpansMetricGroupBy::new("resource_name".to_string())
25 .tag_name("resource_name".to_string())]),
26 "ExampleSpansMetric".to_string(),
27 SpansMetricType::SPANS_METRICS,
28 ));
29 let configuration = datadog::Configuration::new();
30 let api = SpansMetricsAPI::with_config(configuration);
31 let resp = api.create_spans_metric(body).await;
32 if let Ok(value) = resp {
33 println!("{:#?}", value);
34 } else {
35 println!("{:#?}", resp.unwrap_err());
36 }
37}