#[non_exhaustive]pub struct QueryFormula {
pub formula: String,
pub limit: Option<FormulaLimit>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
A formula for calculation based on one or more queries.
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.formula: String
Formula string, referencing one or more queries with their name property.
limit: Option<FormulaLimit>
Message for specifying limits to the number of values returned by a query. This limit is only for scalar queries and has no effect on timeseries queries.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl QueryFormula
impl QueryFormula
Sourcepub fn new(formula: String) -> QueryFormula
pub fn new(formula: String) -> QueryFormula
Examples found in repository?
examples/v2_metrics_QueryScalarData.rs (line 30)
17async fn main() {
18 let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new(
19 ScalarFormulaRequestAttributes::new(
20 1568899800000,
21 vec![ScalarQuery::MetricsScalarQuery(Box::new(
22 MetricsScalarQuery::new(
23 MetricsAggregator::AVG,
24 MetricsDataSource::METRICS,
25 "avg:system.cpu.user{*} by {env}".to_string(),
26 ),
27 ))],
28 1568923200000,
29 )
30 .formulas(vec![QueryFormula::new("a+b".to_string())
31 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]),
32 ScalarFormulaRequestType::SCALAR_REQUEST,
33 ));
34 let configuration = datadog::Configuration::new();
35 let api = MetricsAPI::with_config(configuration);
36 let resp = api.query_scalar_data(body).await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}
More examples
examples/v2_metrics_QueryTimeseriesData.rs (line 28)
16async fn main() {
17 let body = TimeseriesFormulaQueryRequest::new(TimeseriesFormulaRequest::new(
18 TimeseriesFormulaRequestAttributes::new(
19 1568899800000,
20 vec![TimeseriesQuery::MetricsTimeseriesQuery(Box::new(
21 MetricsTimeseriesQuery::new(
22 MetricsDataSource::METRICS,
23 "avg:system.cpu.user{*} by {env}".to_string(),
24 ),
25 ))],
26 1568923200000,
27 )
28 .formulas(vec![QueryFormula::new("a+b".to_string())
29 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))])
30 .interval(5000),
31 TimeseriesFormulaRequestType::TIMESERIES_REQUEST,
32 ));
33 let configuration = datadog::Configuration::new();
34 let api = MetricsAPI::with_config(configuration);
35 let resp = api.query_timeseries_data(body).await;
36 if let Ok(value) = resp {
37 println!("{:#?}", value);
38 } else {
39 println!("{:#?}", resp.unwrap_err());
40 }
41}
examples/v2_metrics_QueryScalarData_3112571352.rs (line 31)
17async fn main() {
18 let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new(
19 ScalarFormulaRequestAttributes::new(
20 1636625471000,
21 vec![ScalarQuery::MetricsScalarQuery(Box::new(
22 MetricsScalarQuery::new(
23 MetricsAggregator::AVG,
24 MetricsDataSource::METRICS,
25 "avg:system.cpu.user{*}".to_string(),
26 )
27 .name("a".to_string()),
28 ))],
29 1636629071000,
30 )
31 .formulas(vec![QueryFormula::new("a".to_string())
32 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]),
33 ScalarFormulaRequestType::SCALAR_REQUEST,
34 ));
35 let configuration = datadog::Configuration::new();
36 let api = MetricsAPI::with_config(configuration);
37 let resp = api.query_scalar_data(body).await;
38 if let Ok(value) = resp {
39 println!("{:#?}", value);
40 } else {
41 println!("{:#?}", resp.unwrap_err());
42 }
43}
examples/v2_metrics_QueryTimeseriesData_301142940.rs (line 29)
16async fn main() {
17 let body = TimeseriesFormulaQueryRequest::new(TimeseriesFormulaRequest::new(
18 TimeseriesFormulaRequestAttributes::new(
19 1636625471000,
20 vec![TimeseriesQuery::MetricsTimeseriesQuery(Box::new(
21 MetricsTimeseriesQuery::new(
22 MetricsDataSource::METRICS,
23 "avg:datadog.estimated_usage.metrics.custom{*}".to_string(),
24 )
25 .name("a".to_string()),
26 ))],
27 1636629071000,
28 )
29 .formulas(vec![QueryFormula::new("a".to_string())
30 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))])
31 .interval(5000),
32 TimeseriesFormulaRequestType::TIMESERIES_REQUEST,
33 ));
34 let configuration = datadog::Configuration::new();
35 let api = MetricsAPI::with_config(configuration);
36 let resp = api.query_timeseries_data(body).await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}
Sourcepub fn limit(self, value: FormulaLimit) -> Self
pub fn limit(self, value: FormulaLimit) -> Self
Examples found in repository?
examples/v2_metrics_QueryScalarData.rs (line 31)
17async fn main() {
18 let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new(
19 ScalarFormulaRequestAttributes::new(
20 1568899800000,
21 vec![ScalarQuery::MetricsScalarQuery(Box::new(
22 MetricsScalarQuery::new(
23 MetricsAggregator::AVG,
24 MetricsDataSource::METRICS,
25 "avg:system.cpu.user{*} by {env}".to_string(),
26 ),
27 ))],
28 1568923200000,
29 )
30 .formulas(vec![QueryFormula::new("a+b".to_string())
31 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]),
32 ScalarFormulaRequestType::SCALAR_REQUEST,
33 ));
34 let configuration = datadog::Configuration::new();
35 let api = MetricsAPI::with_config(configuration);
36 let resp = api.query_scalar_data(body).await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}
More examples
examples/v2_metrics_QueryTimeseriesData.rs (line 29)
16async fn main() {
17 let body = TimeseriesFormulaQueryRequest::new(TimeseriesFormulaRequest::new(
18 TimeseriesFormulaRequestAttributes::new(
19 1568899800000,
20 vec![TimeseriesQuery::MetricsTimeseriesQuery(Box::new(
21 MetricsTimeseriesQuery::new(
22 MetricsDataSource::METRICS,
23 "avg:system.cpu.user{*} by {env}".to_string(),
24 ),
25 ))],
26 1568923200000,
27 )
28 .formulas(vec![QueryFormula::new("a+b".to_string())
29 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))])
30 .interval(5000),
31 TimeseriesFormulaRequestType::TIMESERIES_REQUEST,
32 ));
33 let configuration = datadog::Configuration::new();
34 let api = MetricsAPI::with_config(configuration);
35 let resp = api.query_timeseries_data(body).await;
36 if let Ok(value) = resp {
37 println!("{:#?}", value);
38 } else {
39 println!("{:#?}", resp.unwrap_err());
40 }
41}
examples/v2_metrics_QueryScalarData_3112571352.rs (line 32)
17async fn main() {
18 let body = ScalarFormulaQueryRequest::new(ScalarFormulaRequest::new(
19 ScalarFormulaRequestAttributes::new(
20 1636625471000,
21 vec![ScalarQuery::MetricsScalarQuery(Box::new(
22 MetricsScalarQuery::new(
23 MetricsAggregator::AVG,
24 MetricsDataSource::METRICS,
25 "avg:system.cpu.user{*}".to_string(),
26 )
27 .name("a".to_string()),
28 ))],
29 1636629071000,
30 )
31 .formulas(vec![QueryFormula::new("a".to_string())
32 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))]),
33 ScalarFormulaRequestType::SCALAR_REQUEST,
34 ));
35 let configuration = datadog::Configuration::new();
36 let api = MetricsAPI::with_config(configuration);
37 let resp = api.query_scalar_data(body).await;
38 if let Ok(value) = resp {
39 println!("{:#?}", value);
40 } else {
41 println!("{:#?}", resp.unwrap_err());
42 }
43}
examples/v2_metrics_QueryTimeseriesData_301142940.rs (line 30)
16async fn main() {
17 let body = TimeseriesFormulaQueryRequest::new(TimeseriesFormulaRequest::new(
18 TimeseriesFormulaRequestAttributes::new(
19 1636625471000,
20 vec![TimeseriesQuery::MetricsTimeseriesQuery(Box::new(
21 MetricsTimeseriesQuery::new(
22 MetricsDataSource::METRICS,
23 "avg:datadog.estimated_usage.metrics.custom{*}".to_string(),
24 )
25 .name("a".to_string()),
26 ))],
27 1636629071000,
28 )
29 .formulas(vec![QueryFormula::new("a".to_string())
30 .limit(FormulaLimit::new().count(10).order(QuerySortOrder::DESC))])
31 .interval(5000),
32 TimeseriesFormulaRequestType::TIMESERIES_REQUEST,
33 ));
34 let configuration = datadog::Configuration::new();
35 let api = MetricsAPI::with_config(configuration);
36 let resp = api.query_timeseries_data(body).await;
37 if let Ok(value) = resp {
38 println!("{:#?}", value);
39 } else {
40 println!("{:#?}", resp.unwrap_err());
41 }
42}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for QueryFormula
impl Clone for QueryFormula
Source§fn clone(&self) -> QueryFormula
fn clone(&self) -> QueryFormula
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 QueryFormula
impl Debug for QueryFormula
Source§impl<'de> Deserialize<'de> for QueryFormula
impl<'de> Deserialize<'de> for QueryFormula
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 QueryFormula
impl PartialEq for QueryFormula
Source§impl Serialize for QueryFormula
impl Serialize for QueryFormula
impl StructuralPartialEq for QueryFormula
Auto Trait Implementations§
impl Freeze for QueryFormula
impl RefUnwindSafe for QueryFormula
impl Send for QueryFormula
impl Sync for QueryFormula
impl Unpin for QueryFormula
impl UnwindSafe for QueryFormula
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