v1_dashboards_CreateDashboard_3882428227/
v1_dashboards_CreateDashboard_3882428227.rs1use datadog_api_client::datadog;
4use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
5use datadog_api_client::datadogV1::model::Dashboard;
6use datadog_api_client::datadogV1::model::DashboardLayoutType;
7use datadog_api_client::datadogV1::model::DistributionWidgetDefinition;
8use datadog_api_client::datadogV1::model::DistributionWidgetDefinitionType;
9use datadog_api_client::datadogV1::model::DistributionWidgetHistogramRequestQuery;
10use datadog_api_client::datadogV1::model::DistributionWidgetHistogramRequestType;
11use datadog_api_client::datadogV1::model::DistributionWidgetRequest;
12use datadog_api_client::datadogV1::model::DistributionWidgetXAxis;
13use datadog_api_client::datadogV1::model::DistributionWidgetYAxis;
14use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation;
15use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
16use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
17use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
18use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
19use datadog_api_client::datadogV1::model::Widget;
20use datadog_api_client::datadogV1::model::WidgetDefinition;
21use datadog_api_client::datadogV1::model::WidgetLayout;
22use datadog_api_client::datadogV1::model::WidgetTextAlign;
23
24#[tokio::main]
25async fn main() {
26 let body =
27 Dashboard::new(
28 DashboardLayoutType::ORDERED,
29 "Example-Dashboard".to_string(),
30 vec![
31 Widget::new(
32 WidgetDefinition::DistributionWidgetDefinition(
33 Box::new(
34 DistributionWidgetDefinition::new(
35 vec![
36 DistributionWidgetRequest::new()
37 .query(
38 DistributionWidgetHistogramRequestQuery
39 ::FormulaAndFunctionEventQueryDefinition(
40 Box::new(
41 FormulaAndFunctionEventQueryDefinition::new(
42 FormulaAndFunctionEventQueryDefinitionCompute::new(
43 FormulaAndFunctionEventAggregation::MIN,
44 ).metric("@duration".to_string()),
45 FormulaAndFunctionEventsDataSource::EVENTS,
46 "query1".to_string(),
47 )
48 .group_by(vec![])
49 .indexes(vec!["*".to_string()])
50 .search(
51 FormulaAndFunctionEventQueryDefinitionSearch::new(
52 "".to_string(),
53 ),
54 ),
55 ),
56 ),
57 )
58 .request_type(DistributionWidgetHistogramRequestType::HISTOGRAM)
59 ],
60 DistributionWidgetDefinitionType::DISTRIBUTION,
61 )
62 .show_legend(false)
63 .title("Events Platform - Request latency HOP".to_string())
64 .title_align(WidgetTextAlign::LEFT)
65 .title_size("16".to_string())
66 .xaxis(
67 DistributionWidgetXAxis::new()
68 .include_zero(true)
69 .max("auto".to_string())
70 .min("auto".to_string())
71 .scale("linear".to_string()),
72 )
73 .yaxis(
74 DistributionWidgetYAxis::new()
75 .include_zero(true)
76 .max("auto".to_string())
77 .min("auto".to_string())
78 .scale("linear".to_string()),
79 ),
80 ),
81 ),
82 ).layout(WidgetLayout::new(2, 4, 0, 0))
83 ],
84 ).description(Some("Example-Dashboard".to_string()));
85 let configuration = datadog::Configuration::new();
86 let api = DashboardsAPI::with_config(configuration);
87 let resp = api.create_dashboard(body).await;
88 if let Ok(value) = resp {
89 println!("{:#?}", value);
90 } else {
91 println!("{:#?}", resp.unwrap_err());
92 }
93}