v1_dashboards_CreateDashboard/
v1_dashboards_CreateDashboard.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::LogQueryDefinition;
7use datadog_api_client::datadogV1::model::LogQueryDefinitionGroupBy;
8use datadog_api_client::datadogV1::model::LogQueryDefinitionGroupBySort;
9use datadog_api_client::datadogV1::model::LogQueryDefinitionSearch;
10use datadog_api_client::datadogV1::model::LogsQueryCompute;
11use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition;
12use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType;
13use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest;
14use datadog_api_client::datadogV1::model::Widget;
15use datadog_api_client::datadogV1::model::WidgetDefinition;
16use datadog_api_client::datadogV1::model::WidgetSort;
17
18#[tokio::main]
19async fn main() {
20 let body = Dashboard::new(
21 DashboardLayoutType::ORDERED,
22 "Example-Dashboard with Profile Metrics Query".to_string(),
23 vec![Widget::new(WidgetDefinition::TimeseriesWidgetDefinition(
24 Box::new(TimeseriesWidgetDefinition::new(
25 vec![TimeseriesWidgetRequest::new().profile_metrics_query(
26 LogQueryDefinition::new()
27 .compute(
28 LogsQueryCompute::new("sum".to_string())
29 .facet("@prof_core_cpu_cores".to_string()),
30 )
31 .group_by(vec![LogQueryDefinitionGroupBy::new("service".to_string())
32 .limit(10)
33 .sort(
34 LogQueryDefinitionGroupBySort::new(
35 "sum".to_string(),
36 WidgetSort::DESCENDING,
37 )
38 .facet("@prof_core_cpu_cores".to_string()),
39 )])
40 .search(LogQueryDefinitionSearch::new("runtime:jvm".to_string())),
41 )],
42 TimeseriesWidgetDefinitionType::TIMESERIES,
43 )),
44 ))],
45 );
46 let configuration = datadog::Configuration::new();
47 let api = DashboardsAPI::with_config(configuration);
48 let resp = api.create_dashboard(body).await;
49 if let Ok(value) = resp {
50 println!("{:#?}", value);
51 } else {
52 println!("{:#?}", resp.unwrap_err());
53 }
54}