#[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: i64
Maximum number of graphs to display in the widget.
sort: SplitSort
Controls 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)
33async fn main() {
34 let body =
35 Dashboard::new(
36 DashboardLayoutType::ORDERED,
37 "Example-Dashboard".to_string(),
38 vec![
39 Widget::new(
40 WidgetDefinition::SplitGraphWidgetDefinition(
41 Box::new(
42 SplitGraphWidgetDefinition::new(
43 SplitGraphVizSize::MD,
44 SplitGraphSourceWidgetDefinition::TimeseriesWidgetDefinition(
45 Box::new(
46 TimeseriesWidgetDefinition::new(
47 vec![
48 TimeseriesWidgetRequest::new()
49 .display_type(WidgetDisplayType::LINE)
50 .queries(
51 vec![
52 FormulaAndFunctionQueryDefinition
53 ::FormulaAndFunctionMetricQueryDefinition(
54 Box::new(
55 FormulaAndFunctionMetricQueryDefinition::new(
56 FormulaAndFunctionMetricDataSource::METRICS,
57 "query1".to_string(),
58 "avg:system.cpu.user{*}".to_string(),
59 ),
60 ),
61 )
62 ],
63 )
64 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
65 .style(
66 WidgetRequestStyle::new()
67 .line_type(WidgetLineType::SOLID)
68 .line_width(WidgetLineWidth::NORMAL)
69 .palette("dog_classic".to_string()),
70 )
71 ],
72 TimeseriesWidgetDefinitionType::TIMESERIES,
73 )
74 .title("".to_string())
75 .title_align(WidgetTextAlign::LEFT)
76 .title_size("16".to_string()),
77 ),
78 ),
79 SplitConfig::new(
80 24,
81 SplitSort::new(
82 WidgetSort::DESCENDING,
83 ).compute(
84 SplitConfigSortCompute::new("sum".to_string(), "system.cpu.user".to_string()),
85 ),
86 vec![SplitDimension::new("service".to_string())],
87 ).static_splits(
88 vec![
89 vec![
90 SplitVectorEntryItem::new(
91 "service".to_string(),
92 vec!["cassandra".to_string()],
93 ),
94 SplitVectorEntryItem::new("datacenter".to_string(), vec![])
95 ],
96 vec![SplitVectorEntryItem::new("demo".to_string(), vec!["env".to_string()])]
97 ],
98 ),
99 SplitGraphWidgetDefinitionType::SPLIT_GROUP,
100 )
101 .has_uniform_y_axes(true)
102 .title("".to_string()),
103 ),
104 ),
105 ).layout(WidgetLayout::new(8, 12, 0, 0))
106 ],
107 )
108 .description(Some("".to_string()))
109 .notify_list(Some(vec![]))
110 .template_variables(Some(vec![]));
111 let configuration = datadog::Configuration::new();
112 let api = DashboardsAPI::with_config(configuration);
113 let resp = api.create_dashboard(body).await;
114 if let Ok(value) = resp {
115 println!("{:#?}", value);
116 } else {
117 println!("{:#?}", resp.unwrap_err());
118 }
119}
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)
33async fn main() {
34 let body =
35 Dashboard::new(
36 DashboardLayoutType::ORDERED,
37 "Example-Dashboard".to_string(),
38 vec![
39 Widget::new(
40 WidgetDefinition::SplitGraphWidgetDefinition(
41 Box::new(
42 SplitGraphWidgetDefinition::new(
43 SplitGraphVizSize::MD,
44 SplitGraphSourceWidgetDefinition::TimeseriesWidgetDefinition(
45 Box::new(
46 TimeseriesWidgetDefinition::new(
47 vec![
48 TimeseriesWidgetRequest::new()
49 .display_type(WidgetDisplayType::LINE)
50 .queries(
51 vec![
52 FormulaAndFunctionQueryDefinition
53 ::FormulaAndFunctionMetricQueryDefinition(
54 Box::new(
55 FormulaAndFunctionMetricQueryDefinition::new(
56 FormulaAndFunctionMetricDataSource::METRICS,
57 "query1".to_string(),
58 "avg:system.cpu.user{*}".to_string(),
59 ),
60 ),
61 )
62 ],
63 )
64 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
65 .style(
66 WidgetRequestStyle::new()
67 .line_type(WidgetLineType::SOLID)
68 .line_width(WidgetLineWidth::NORMAL)
69 .palette("dog_classic".to_string()),
70 )
71 ],
72 TimeseriesWidgetDefinitionType::TIMESERIES,
73 )
74 .title("".to_string())
75 .title_align(WidgetTextAlign::LEFT)
76 .title_size("16".to_string()),
77 ),
78 ),
79 SplitConfig::new(
80 24,
81 SplitSort::new(
82 WidgetSort::DESCENDING,
83 ).compute(
84 SplitConfigSortCompute::new("sum".to_string(), "system.cpu.user".to_string()),
85 ),
86 vec![SplitDimension::new("service".to_string())],
87 ).static_splits(
88 vec![
89 vec![
90 SplitVectorEntryItem::new(
91 "service".to_string(),
92 vec!["cassandra".to_string()],
93 ),
94 SplitVectorEntryItem::new("datacenter".to_string(), vec![])
95 ],
96 vec![SplitVectorEntryItem::new("demo".to_string(), vec!["env".to_string()])]
97 ],
98 ),
99 SplitGraphWidgetDefinitionType::SPLIT_GROUP,
100 )
101 .has_uniform_y_axes(true)
102 .title("".to_string()),
103 ),
104 ),
105 ).layout(WidgetLayout::new(8, 12, 0, 0))
106 ],
107 )
108 .description(Some("".to_string()))
109 .notify_list(Some(vec![]))
110 .template_variables(Some(vec![]));
111 let configuration = datadog::Configuration::new();
112 let api = DashboardsAPI::with_config(configuration);
113 let resp = api.create_dashboard(body).await;
114 if let Ok(value) = resp {
115 println!("{:#?}", value);
116 } else {
117 println!("{:#?}", resp.unwrap_err());
118 }
119}
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 duplicate 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