Struct datadog_api_client::datadogV1::model::model_split_config::SplitConfig
source · #[non_exhaustive]pub struct SplitConfig {
pub limit: i64,
pub sort: SplitSort,
pub split_dimensions: Vec<SplitDimension>,
pub static_splits: Option<Vec<Vec<SplitVectorEntryItem>>>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}Expand description
Encapsulates all user choices about how to split a graph.
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.limit: i64Maximum number of graphs to display in the widget.
sort: SplitSortControls the order in which graphs appear in the split.
split_dimensions: Vec<SplitDimension>The dimension(s) on which to split the graph
static_splits: Option<Vec<Vec<SplitVectorEntryItem>>>Manual selection of tags making split graph widget static
additional_properties: BTreeMap<String, Value>Implementations§
source§impl SplitConfig
impl SplitConfig
sourcepub fn new(
limit: i64,
sort: SplitSort,
split_dimensions: Vec<SplitDimension>,
) -> SplitConfig
pub fn new( limit: i64, sort: SplitSort, split_dimensions: Vec<SplitDimension>, ) -> SplitConfig
Examples found in repository?
examples/v1_dashboards_CreateDashboard_2278756614.rs (lines 79-87)
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::SplitGraphWidgetDefinition(
Box::new(
SplitGraphWidgetDefinition::new(
SplitGraphVizSize::MD,
SplitGraphSourceWidgetDefinition::TimeseriesWidgetDefinition(
Box::new(
TimeseriesWidgetDefinition::new(
vec![
TimeseriesWidgetRequest::new()
.display_type(WidgetDisplayType::LINE)
.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,
)
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
SplitConfig::new(
24,
SplitSort::new(
WidgetSort::DESCENDING,
).compute(
SplitConfigSortCompute::new("sum".to_string(), "system.cpu.user".to_string()),
),
vec![SplitDimension::new("service".to_string())],
).static_splits(
vec![
vec![
SplitVectorEntryItem::new(
"service".to_string(),
vec!["cassandra".to_string()],
),
SplitVectorEntryItem::new("datacenter".to_string(), vec![])
],
vec![SplitVectorEntryItem::new("demo".to_string(), vec!["env".to_string()])]
],
),
SplitGraphWidgetDefinitionType::SPLIT_GROUP,
)
.has_uniform_y_axes(true)
.title("".to_string()),
),
),
).layout(WidgetLayout::new(8, 12, 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 static_splits(self, value: Vec<Vec<SplitVectorEntryItem>>) -> Self
pub fn static_splits(self, value: Vec<Vec<SplitVectorEntryItem>>) -> Self
Examples found in repository?
examples/v1_dashboards_CreateDashboard_2278756614.rs (lines 87-98)
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::SplitGraphWidgetDefinition(
Box::new(
SplitGraphWidgetDefinition::new(
SplitGraphVizSize::MD,
SplitGraphSourceWidgetDefinition::TimeseriesWidgetDefinition(
Box::new(
TimeseriesWidgetDefinition::new(
vec![
TimeseriesWidgetRequest::new()
.display_type(WidgetDisplayType::LINE)
.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,
)
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string()),
),
),
SplitConfig::new(
24,
SplitSort::new(
WidgetSort::DESCENDING,
).compute(
SplitConfigSortCompute::new("sum".to_string(), "system.cpu.user".to_string()),
),
vec![SplitDimension::new("service".to_string())],
).static_splits(
vec![
vec![
SplitVectorEntryItem::new(
"service".to_string(),
vec!["cassandra".to_string()],
),
SplitVectorEntryItem::new("datacenter".to_string(), vec![])
],
vec![SplitVectorEntryItem::new("demo".to_string(), vec!["env".to_string()])]
],
),
SplitGraphWidgetDefinitionType::SPLIT_GROUP,
)
.has_uniform_y_axes(true)
.title("".to_string()),
),
),
).layout(WidgetLayout::new(8, 12, 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 additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
source§impl Clone for SplitConfig
impl Clone for SplitConfig
source§fn clone(&self) -> SplitConfig
fn clone(&self) -> SplitConfig
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 SplitConfig
impl Debug for SplitConfig
source§impl<'de> Deserialize<'de> for SplitConfig
impl<'de> Deserialize<'de> for SplitConfig
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 SplitConfig
impl PartialEq for SplitConfig
source§impl Serialize for SplitConfig
impl Serialize for SplitConfig
impl StructuralPartialEq for SplitConfig
Auto Trait Implementations§
impl Freeze for SplitConfig
impl RefUnwindSafe for SplitConfig
impl Send for SplitConfig
impl Sync for SplitConfig
impl Unpin for SplitConfig
impl UnwindSafe for SplitConfig
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)