v1_dashboards_CreateDashboard_2104498738/
v1_dashboards_CreateDashboard_2104498738.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::ScatterPlotWidgetDefinition;
12use datadog_api_client::datadogV1::model::ScatterPlotWidgetDefinitionRequests;
13use datadog_api_client::datadogV1::model::ScatterPlotWidgetDefinitionType;
14use datadog_api_client::datadogV1::model::ScatterplotDimension;
15use datadog_api_client::datadogV1::model::ScatterplotTableRequest;
16use datadog_api_client::datadogV1::model::ScatterplotWidgetFormula;
17use datadog_api_client::datadogV1::model::Widget;
18use datadog_api_client::datadogV1::model::WidgetDefinition;
19use datadog_api_client::datadogV1::model::WidgetLayout;
20use datadog_api_client::datadogV1::model::WidgetTextAlign;
21
22#[tokio::main]
23async fn main() {
24 let body =
25 Dashboard::new(
26 DashboardLayoutType::ORDERED,
27 "Example-Dashboard".to_string(),
28 vec![
29 Widget::new(
30 WidgetDefinition::ScatterPlotWidgetDefinition(
31 Box::new(
32 ScatterPlotWidgetDefinition::new(
33 ScatterPlotWidgetDefinitionRequests
34 ::new().table(
35 ScatterplotTableRequest::new()
36 .formulas(
37 vec![
38 ScatterplotWidgetFormula::new(
39 ScatterplotDimension::X,
40 "query1".to_string(),
41 ).alias("my-query1".to_string()),
42 ScatterplotWidgetFormula::new(
43 ScatterplotDimension::Y,
44 "query2".to_string(),
45 ).alias("my-query2".to_string())
46 ],
47 )
48 .queries(
49 vec![
50 FormulaAndFunctionQueryDefinition
51 ::FormulaAndFunctionMetricQueryDefinition(
52 Box::new(
53 FormulaAndFunctionMetricQueryDefinition::new(
54 FormulaAndFunctionMetricDataSource::METRICS,
55 "query1".to_string(),
56 "avg:system.cpu.user{*} by {service}".to_string(),
57 ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
58 ),
59 ),
60 FormulaAndFunctionQueryDefinition
61 ::FormulaAndFunctionMetricQueryDefinition(
62 Box::new(
63 FormulaAndFunctionMetricQueryDefinition::new(
64 FormulaAndFunctionMetricDataSource::METRICS,
65 "query2".to_string(),
66 "avg:system.mem.used{*} by {service}".to_string(),
67 ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
68 ),
69 )
70 ],
71 )
72 .response_format(FormulaAndFunctionResponseFormat::SCALAR),
73 ),
74 ScatterPlotWidgetDefinitionType::SCATTERPLOT,
75 )
76 .title("".to_string())
77 .title_align(WidgetTextAlign::LEFT)
78 .title_size("16".to_string()),
79 ),
80 ),
81 )
82 .id(5346764334358972)
83 .layout(WidgetLayout::new(2, 4, 0, 0))
84 ],
85 );
86 let configuration = datadog::Configuration::new();
87 let api = DashboardsAPI::with_config(configuration);
88 let resp = api.create_dashboard(body).await;
89 if let Ok(value) = resp {
90 println!("{:#?}", value);
91 } else {
92 println!("{:#?}", resp.unwrap_err());
93 }
94}