#[non_exhaustive]pub struct WidgetFormula {
pub alias: Option<String>,
pub cell_display_mode: Option<TableWidgetCellDisplayMode>,
pub conditional_formats: Option<Vec<WidgetConditionalFormat>>,
pub formula: String,
pub limit: Option<WidgetFormulaLimit>,
pub style: Option<WidgetFormulaStyle>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}Expand description
Formula to be used in a widget query.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.alias: Option<String>Expression alias.
cell_display_mode: Option<TableWidgetCellDisplayMode>Define a display mode for the table cell.
conditional_formats: Option<Vec<WidgetConditionalFormat>>List of conditional formats.
formula: StringString expression built from queries, formulas, and functions.
limit: Option<WidgetFormulaLimit>Options for limiting results returned.
style: Option<WidgetFormulaStyle>Styling options for widget formulas.
additional_properties: BTreeMap<String, Value>Implementations§
source§impl WidgetFormula
impl WidgetFormula
sourcepub fn new(formula: String) -> WidgetFormula
pub fn new(formula: String) -> WidgetFormula
Examples found in repository?
examples/v1_dashboards_CreateDashboard_3669695268.rs (line 34)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
async fn main() {
let body = Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with query table widget and storage parameter".to_string(),
vec![Widget::new(WidgetDefinition::TableWidgetDefinition(
Box::new(TableWidgetDefinition::new(
vec![TableWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())
.cell_display_mode(TableWidgetCellDisplayMode::BAR)
.conditional_formats(vec![])])
.queries(vec![
FormulaAndFunctionQueryDefinition::FormulaAndFunctionEventQueryDefinition(
Box::new(
FormulaAndFunctionEventQueryDefinition::new(
FormulaAndFunctionEventQueryDefinitionCompute::new(
FormulaAndFunctionEventAggregation::COUNT,
),
FormulaAndFunctionEventsDataSource::LOGS,
"query1".to_string(),
)
.group_by(vec![])
.indexes(vec!["*".to_string()])
.search(FormulaAndFunctionEventQueryDefinitionSearch::new(
"".to_string(),
))
.storage("online_archives".to_string()),
),
),
])
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.sort(WidgetSortBy::new().count(50).order_by(vec![
WidgetSortOrderBy::WidgetFormulaSort(Box::new(WidgetFormulaSort::new(
0,
WidgetSort::DESCENDING,
FormulaType::FORMULA,
))),
]))],
TableWidgetDefinitionType::QUERY_TABLE,
)),
))],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}More examples
examples/v1_dashboards_CreateDashboard_2705593938.rs (line 34)
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::SunburstWidgetDefinition(
Box::new(
SunburstWidgetDefinition::new(
vec![
SunburstWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())])
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"sum:system.mem.used{*} by {service}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::SUM),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.style(WidgetStyle::new().palette("dog_classic".to_string()))
],
SunburstWidgetDefinitionType::SUNBURST,
)
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(4, 4, 0, 0))
],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}examples/v1_dashboards_CreateDashboard_3562282606.rs (line 41)
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
async fn main() {
// there is a valid "slo" in the system
let slo_data_0_id = std::env::var("SLO_DATA_0_ID").unwrap();
let body = Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(WidgetDefinition::ChangeWidgetDefinition(Box::new(
ChangeWidgetDefinition::new(
vec![ChangeWidgetRequest::new()
.change_type(WidgetChangeType::ABSOLUTE)
.formulas(vec![
WidgetFormula::new("hour_before(query1)".to_string()),
WidgetFormula::new("query1".to_string()),
])
.increase_good(true)
.order_by(WidgetOrderBy::CHANGE)
.order_dir(WidgetSort::ASCENDING)
.queries(vec![
FormulaAndFunctionQueryDefinition::FormulaAndFunctionSLOQueryDefinition(
Box::new(
FormulaAndFunctionSLOQueryDefinition::new(
FormulaAndFunctionSLODataSource::SLO,
FormulaAndFunctionSLOMeasure::SLO_STATUS,
slo_data_0_id.clone(),
)
.additional_query_filters("*".to_string())
.group_mode(FormulaAndFunctionSLOGroupMode::OVERALL)
.name("query1".to_string())
.slo_query_type(FormulaAndFunctionSLOQueryType::METRIC),
),
),
])
.response_format(FormulaAndFunctionResponseFormat::SCALAR)],
ChangeWidgetDefinitionType::CHANGE,
)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(
WidgetLegacyLiveSpan::new(),
)))
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
)))
.layout(WidgetLayout::new(2, 4, 0, 0)),
],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}examples/v1_dashboards_CreateDashboard_2644712913.rs (line 35)
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with QVW Percentile Aggregator".to_string(),
vec![
Widget::new(
WidgetDefinition::QueryValueWidgetDefinition(
Box::new(
QueryValueWidgetDefinition::new(
vec![
QueryValueWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())])
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"p90:dist.dd.dogweb.latency{*}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::PERCENTILE),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
],
QueryValueWidgetDefinitionType::QUERY_VALUE,
)
.autoscale(true)
.precision(2)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(2, 2, 0, 0))
],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}examples/v1_dashboards_CreateDashboard_3777304439.rs (line 35)
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::FREE,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::HeatMapWidgetDefinition(
Box::new(
HeatMapWidgetDefinition::new(
vec![
HeatMapWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())])
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"avg:system.cpu.user{*}".to_string(),
),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
.style(WidgetStyle::new().palette("dog_classic".to_string()))
],
HeatMapWidgetDefinitionType::HEATMAP,
)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(15, 47, 0, 0))
],
)
.is_read_only(false)
.notify_list(Some(vec![]))
.template_variables(Some(vec![]));
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}examples/v1_dashboards_CreateDashboard_765140092.rs (line 38)
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with QVW Timeseries Background".to_string(),
vec![
Widget::new(
WidgetDefinition::QueryValueWidgetDefinition(
Box::new(
QueryValueWidgetDefinition::new(
vec![
QueryValueWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())])
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"sum:my.cool.count.metric{*}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::PERCENTILE),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
],
QueryValueWidgetDefinitionType::QUERY_VALUE,
)
.autoscale(true)
.precision(2)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.timeseries_background(
TimeseriesBackground::new(
TimeseriesBackgroundType::AREA,
).yaxis(WidgetAxis::new().include_zero(true)),
)
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(2, 2, 0, 0))
],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}Additional examples can be found in:
- examples/v1_dashboards_CreateDashboard_1284514532.rs
- examples/v1_dashboards_CreateDashboard_1024858348.rs
- examples/v1_dashboards_CreateDashboard_578885732.rs
- examples/v1_dashboards_CreateDashboard_2064651578.rs
- examples/v1_dashboards_CreateDashboard_41622531.rs
- examples/v1_dashboards_CreateDashboard_2336428357.rs
- examples/v1_dashboards_CreateDashboard_1307120899.rs
- examples/v1_dashboards_CreateDashboard_985012506.rs
- examples/v1_dashboards_CreateDashboard_2800096921.rs
- examples/v1_dashboards_CreateDashboard_4262729673.rs
- examples/v1_dashboards_CreateDashboard_1213075383.rs
- examples/v1_dashboards_CreateDashboard_2563642929.rs
- examples/v1_dashboards_CreateDashboard_3451918078.rs
- examples/v1_dashboards_CreateDashboard_3066042014.rs
- examples/v1_dashboards_CreateDashboard_915214113.rs
pub fn alias(self, value: String) -> Self
sourcepub fn cell_display_mode(self, value: TableWidgetCellDisplayMode) -> Self
pub fn cell_display_mode(self, value: TableWidgetCellDisplayMode) -> Self
Examples found in repository?
examples/v1_dashboards_CreateDashboard_3669695268.rs (line 35)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
async fn main() {
let body = Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with query table widget and storage parameter".to_string(),
vec![Widget::new(WidgetDefinition::TableWidgetDefinition(
Box::new(TableWidgetDefinition::new(
vec![TableWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())
.cell_display_mode(TableWidgetCellDisplayMode::BAR)
.conditional_formats(vec![])])
.queries(vec![
FormulaAndFunctionQueryDefinition::FormulaAndFunctionEventQueryDefinition(
Box::new(
FormulaAndFunctionEventQueryDefinition::new(
FormulaAndFunctionEventQueryDefinitionCompute::new(
FormulaAndFunctionEventAggregation::COUNT,
),
FormulaAndFunctionEventsDataSource::LOGS,
"query1".to_string(),
)
.group_by(vec![])
.indexes(vec!["*".to_string()])
.search(FormulaAndFunctionEventQueryDefinitionSearch::new(
"".to_string(),
))
.storage("online_archives".to_string()),
),
),
])
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.sort(WidgetSortBy::new().count(50).order_by(vec![
WidgetSortOrderBy::WidgetFormulaSort(Box::new(WidgetFormulaSort::new(
0,
WidgetSort::DESCENDING,
FormulaType::FORMULA,
))),
]))],
TableWidgetDefinitionType::QUERY_TABLE,
)),
))],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}More examples
examples/v1_dashboards_CreateDashboard_2336428357.rs (line 45)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::FREE,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::TableWidgetDefinition(
Box::new(
TableWidgetDefinition::new(
vec![
TableWidgetRequest::new()
.formulas(
vec![
WidgetFormula::new("query1".to_string())
.cell_display_mode(TableWidgetCellDisplayMode::BAR)
.conditional_formats(vec![])
],
)
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"avg:system.cpu.user{*} by {host}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::AVG),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.sort(
WidgetSortBy::new()
.count(500)
.order_by(
vec![
WidgetSortOrderBy::WidgetFormulaSort(
Box::new(
WidgetFormulaSort::new(
0,
WidgetSort::DESCENDING,
FormulaType::FORMULA,
),
),
)
],
),
)
],
TableWidgetDefinitionType::QUERY_TABLE,
)
.has_search_bar(TableWidgetHasSearchBar::AUTO)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(32, 54, 0, 0))
],
)
.description(Some("".to_string()))
.is_read_only(false)
.notify_list(Some(vec![]))
.template_variables(Some(vec![]));
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}sourcepub fn conditional_formats(self, value: Vec<WidgetConditionalFormat>) -> Self
pub fn conditional_formats(self, value: Vec<WidgetConditionalFormat>) -> Self
Examples found in repository?
examples/v1_dashboards_CreateDashboard_3669695268.rs (line 36)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
async fn main() {
let body = Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with query table widget and storage parameter".to_string(),
vec![Widget::new(WidgetDefinition::TableWidgetDefinition(
Box::new(TableWidgetDefinition::new(
vec![TableWidgetRequest::new()
.formulas(vec![WidgetFormula::new("query1".to_string())
.cell_display_mode(TableWidgetCellDisplayMode::BAR)
.conditional_formats(vec![])])
.queries(vec![
FormulaAndFunctionQueryDefinition::FormulaAndFunctionEventQueryDefinition(
Box::new(
FormulaAndFunctionEventQueryDefinition::new(
FormulaAndFunctionEventQueryDefinitionCompute::new(
FormulaAndFunctionEventAggregation::COUNT,
),
FormulaAndFunctionEventsDataSource::LOGS,
"query1".to_string(),
)
.group_by(vec![])
.indexes(vec!["*".to_string()])
.search(FormulaAndFunctionEventQueryDefinitionSearch::new(
"".to_string(),
))
.storage("online_archives".to_string()),
),
),
])
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.sort(WidgetSortBy::new().count(50).order_by(vec![
WidgetSortOrderBy::WidgetFormulaSort(Box::new(WidgetFormulaSort::new(
0,
WidgetSort::DESCENDING,
FormulaType::FORMULA,
))),
]))],
TableWidgetDefinitionType::QUERY_TABLE,
)),
))],
);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}More examples
examples/v1_dashboards_CreateDashboard_2336428357.rs (line 46)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::FREE,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::TableWidgetDefinition(
Box::new(
TableWidgetDefinition::new(
vec![
TableWidgetRequest::new()
.formulas(
vec![
WidgetFormula::new("query1".to_string())
.cell_display_mode(TableWidgetCellDisplayMode::BAR)
.conditional_formats(vec![])
],
)
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"avg:system.cpu.user{*} by {host}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::AVG),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
.sort(
WidgetSortBy::new()
.count(500)
.order_by(
vec![
WidgetSortOrderBy::WidgetFormulaSort(
Box::new(
WidgetFormulaSort::new(
0,
WidgetSort::DESCENDING,
FormulaType::FORMULA,
),
),
)
],
),
)
],
TableWidgetDefinitionType::QUERY_TABLE,
)
.has_search_bar(TableWidgetHasSearchBar::AUTO)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
).layout(WidgetLayout::new(32, 54, 0, 0))
],
)
.description(Some("".to_string()))
.is_read_only(false)
.notify_list(Some(vec![]))
.template_variables(Some(vec![]));
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}pub fn limit(self, value: WidgetFormulaLimit) -> Self
sourcepub fn style(self, value: WidgetFormulaStyle) -> Self
pub fn style(self, value: WidgetFormulaStyle) -> Self
Examples found in repository?
examples/v1_dashboards_CreateDashboard_41622531.rs (lines 45-49)
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard with formula style".to_string(),
vec![
Widget::new(
WidgetDefinition::TimeseriesWidgetDefinition(
Box::new(
TimeseriesWidgetDefinition::new(
vec![
TimeseriesWidgetRequest::new()
.display_type(WidgetDisplayType::LINE)
.formulas(
vec![
WidgetFormula::new(
"query1".to_string(),
).style(
WidgetFormulaStyle::new()
.palette("classic".to_string())
.palette_index(4),
)
],
)
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"avg:system.cpu.user{*}".to_string(),
),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
.style(
WidgetRequestStyle::new()
.line_type(WidgetLineType::SOLID)
.line_width(WidgetLineWidth::NORMAL)
.palette("dog_classic".to_string()),
)
],
TimeseriesWidgetDefinitionType::TIMESERIES,
)
.legend_columns(
vec![
TimeseriesWidgetLegendColumn::AVG,
TimeseriesWidgetLegendColumn::MIN,
TimeseriesWidgetLegendColumn::MAX,
TimeseriesWidgetLegendColumn::VALUE,
TimeseriesWidgetLegendColumn::SUM
],
)
.legend_layout(TimeseriesWidgetLegendLayout::AUTO)
.show_legend(true)
.time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
.title("styled timeseries".to_string()),
),
),
)
],
).reflow_type(DashboardReflowType::AUTO);
let configuration = datadog::Configuration::new();
let api = DashboardsAPI::with_config(configuration);
let resp = api.create_dashboard(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
source§impl Clone for WidgetFormula
impl Clone for WidgetFormula
source§fn clone(&self) -> WidgetFormula
fn clone(&self) -> WidgetFormula
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for WidgetFormula
impl Debug for WidgetFormula
source§impl<'de> Deserialize<'de> for WidgetFormula
impl<'de> Deserialize<'de> for WidgetFormula
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl PartialEq for WidgetFormula
impl PartialEq for WidgetFormula
source§impl Serialize for WidgetFormula
impl Serialize for WidgetFormula
impl StructuralPartialEq for WidgetFormula
Auto Trait Implementations§
impl Freeze for WidgetFormula
impl RefUnwindSafe for WidgetFormula
impl Send for WidgetFormula
impl Sync for WidgetFormula
impl Unpin for WidgetFormula
impl UnwindSafe for WidgetFormula
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)