v1_dashboards_CreateDashboard_2644712913/
v1_dashboards_CreateDashboard_2644712913.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
4use datadog_api_client::datadogV1::model::Dashboard;
5use datadog_api_client::datadogV1::model::DashboardLayoutType;
6use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
11use datadog_api_client::datadogV1::model::QueryValueWidgetDefinition;
12use datadog_api_client::datadogV1::model::QueryValueWidgetDefinitionType;
13use datadog_api_client::datadogV1::model::QueryValueWidgetRequest;
14use datadog_api_client::datadogV1::model::Widget;
15use datadog_api_client::datadogV1::model::WidgetDefinition;
16use datadog_api_client::datadogV1::model::WidgetFormula;
17use datadog_api_client::datadogV1::model::WidgetLayout;
18use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
19use datadog_api_client::datadogV1::model::WidgetTextAlign;
20use datadog_api_client::datadogV1::model::WidgetTime;
21
22#[tokio::main]
23async fn main() {
24 let body =
25 Dashboard::new(
26 DashboardLayoutType::ORDERED,
27 "Example-Dashboard with QVW Percentile Aggregator".to_string(),
28 vec![
29 Widget::new(
30 WidgetDefinition::QueryValueWidgetDefinition(
31 Box::new(
32 QueryValueWidgetDefinition::new(
33 vec![
34 QueryValueWidgetRequest::new()
35 .formulas(vec![WidgetFormula::new("query1".to_string())])
36 .queries(
37 vec![
38 FormulaAndFunctionQueryDefinition
39 ::FormulaAndFunctionMetricQueryDefinition(
40 Box::new(
41 FormulaAndFunctionMetricQueryDefinition::new(
42 FormulaAndFunctionMetricDataSource::METRICS,
43 "query1".to_string(),
44 "p90:dist.dd.dogweb.latency{*}".to_string(),
45 ).aggregator(FormulaAndFunctionMetricAggregation::PERCENTILE),
46 ),
47 )
48 ],
49 )
50 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
51 ],
52 QueryValueWidgetDefinitionType::QUERY_VALUE,
53 )
54 .autoscale(true)
55 .precision(2)
56 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
57 .title("".to_string())
58 .title_align(WidgetTextAlign::LEFT)
59 .title_size("16".to_string()),
60 ),
61 ),
62 ).layout(WidgetLayout::new(2, 2, 0, 0))
63 ],
64 );
65 let configuration = datadog::Configuration::new();
66 let api = DashboardsAPI::with_config(configuration);
67 let resp = api.create_dashboard(body).await;
68 if let Ok(value) = resp {
69 println!("{:#?}", value);
70 } else {
71 println!("{:#?}", resp.unwrap_err());
72 }
73}