v2_metrics_QueryScalarData/
v2_metrics_QueryScalarData.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_metrics::MetricsAPI;
4use datadog_api_client::datadogV2::model::FormulaLimit;
5use datadog_api_client::datadogV2::model::MetricsAggregator;
6use datadog_api_client::datadogV2::model::MetricsDataSource;
7use datadog_api_client::datadogV2::model::MetricsScalarQuery;
8use datadog_api_client::datadogV2::model::QueryFormula;
9use datadog_api_client::datadogV2::model::QuerySortOrder;
10use datadog_api_client::datadogV2::model::ScalarFormulaQueryRequest;
11use datadog_api_client::datadogV2::model::ScalarFormulaRequest;
12use datadog_api_client::datadogV2::model::ScalarFormulaRequestAttributes;
13use datadog_api_client::datadogV2::model::ScalarFormulaRequestType;
14use datadog_api_client::datadogV2::model::ScalarQuery;
15
16#[tokio::main]
17async fn main() {
18 let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new(
19 ScalarFormulaRequestAttributes::new(
20 1568899800000,
21 vec![ScalarQuery::MetricsScalarQuery(Box::new(
22 MetricsScalarQuery::new(
23 MetricsAggregator::AVG,
24 MetricsDataSource::METRICS,
25 "avg:system.cpu.user{*} by {env}".to_string(),
26 ),
27 ))],
28 1568923200000,
29 )
30 .formulas(vec![QueryFormula::new("a+b".to_string())
31 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]),
32 ScalarFormulaRequestType::SCALAR_REQUEST,
33 ));
34 let configuration = datadog::Configuration::new();
35 let api = MetricsAPI::with_config(configuration);
36 let resp = api.query_scalar_data(body).await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}