v1_dashboards_CreateDashboard_2261785072/
v1_dashboards_CreateDashboard_2261785072.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::FormulaAndFunctionMetricDataSource;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
10use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition;
11use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType;
12use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest;
13use datadog_api_client::datadogV1::model::Widget;
14use datadog_api_client::datadogV1::model::WidgetDefinition;
15use datadog_api_client::datadogV1::model::WidgetDisplayType;
16use datadog_api_client::datadogV1::model::WidgetLineType;
17use datadog_api_client::datadogV1::model::WidgetLineWidth;
18use datadog_api_client::datadogV1::model::WidgetRequestStyle;
19
20#[tokio::main]
21async fn main() {
22 let body =
23 Dashboard::new(
24 DashboardLayoutType::ORDERED,
25 "Example-Dashboard".to_string(),
26 vec![
27 Widget::new(
28 WidgetDefinition::TimeseriesWidgetDefinition(
29 Box::new(
30 TimeseriesWidgetDefinition::new(
31 vec![
32 TimeseriesWidgetRequest::new()
33 .display_type(WidgetDisplayType::LINE)
34 .on_right_yaxis(false)
35 .queries(
36 vec![
37 FormulaAndFunctionQueryDefinition
38 ::FormulaAndFunctionMetricQueryDefinition(
39 Box::new(
40 FormulaAndFunctionMetricQueryDefinition::new(
41 FormulaAndFunctionMetricDataSource::METRICS,
42 "mymetric".to_string(),
43 "avg:system.cpu.user{*}".to_string(),
44 ),
45 ),
46 )
47 ],
48 )
49 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES),
50 TimeseriesWidgetRequest::new()
51 .display_type(WidgetDisplayType::OVERLAY)
52 .queries(
53 vec![
54 FormulaAndFunctionQueryDefinition
55 ::FormulaAndFunctionMetricQueryDefinition(
56 Box::new(
57 FormulaAndFunctionMetricQueryDefinition::new(
58 FormulaAndFunctionMetricDataSource::METRICS,
59 "mymetricoverlay".to_string(),
60 "avg:system.cpu.user{*}".to_string(),
61 ),
62 ),
63 )
64 ],
65 )
66 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
67 .style(
68 WidgetRequestStyle::new()
69 .line_type(WidgetLineType::SOLID)
70 .line_width(WidgetLineWidth::NORMAL)
71 .palette("purple".to_string()),
72 )
73 ],
74 TimeseriesWidgetDefinitionType::TIMESERIES,
75 ),
76 ),
77 ),
78 )
79 ],
80 );
81 let configuration = datadog::Configuration::new();
82 let api = DashboardsAPI::with_config(configuration);
83 let resp = api.create_dashboard(body).await;
84 if let Ok(value) = resp {
85 println!("{:#?}", value);
86 } else {
87 println!("{:#?}", resp.unwrap_err());
88 }
89}