Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 49 additions & 2 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1741,6 +1741,9 @@ components:
type: string
markers:
description: List of markers.
example:
- display_type: percentile
value: '90'
items:
$ref: '#/components/schemas/WidgetMarker'
type: array
Expand Down Expand Up @@ -1816,6 +1819,11 @@ components:
$ref: '#/components/schemas/ApmStatsQueryDefinition'
event_query:
$ref: '#/components/schemas/LogQueryDefinition'
formulas:
description: List of formulas that operate on queries.
items:
$ref: '#/components/schemas/WidgetFormula'
type: array
log_query:
$ref: '#/components/schemas/LogQueryDefinition'
network_query:
Expand All @@ -1827,10 +1835,17 @@ components:
q:
description: Widget query.
type: string
queries:
description: List of queries that can be returned directly or used in formulas.
items:
$ref: '#/components/schemas/FormulaAndFunctionQueryDefinition'
type: array
query:
$ref: '#/components/schemas/DistributionWidgetHistogramRequestQuery'
request_type:
$ref: '#/components/schemas/DistributionWidgetHistogramRequestType'
response_format:
$ref: '#/components/schemas/FormulaAndFunctionResponseFormat'
rum_query:
$ref: '#/components/schemas/LogQueryDefinition'
security_query:
Expand All @@ -1854,6 +1869,11 @@ components:
description: Specifies minimum value to show on the x-axis. It takes a number,
percentile (p90 === 90th percentile), or auto for default behavior.
type: string
num_buckets:
description: Number of value buckets to target, also known as the resolution
of the value bins.
format: int64
type: integer
scale:
default: linear
description: Specifies the scale type. Possible values are `linear`.
Expand Down Expand Up @@ -3752,6 +3772,14 @@ components:
type: array
legend_size:
$ref: '#/components/schemas/WidgetLegendSize'
markers:
description: List of markers.
example:
- display_type: percentile
value: '90'
items:
$ref: '#/components/schemas/WidgetMarker'
type: array
requests:
description: List of widget types.
example:
Expand All @@ -3776,6 +3804,8 @@ components:
type: string
type:
$ref: '#/components/schemas/HeatMapWidgetDefinitionType'
xaxis:
$ref: '#/components/schemas/HeatMapWidgetXAxis'
yaxis:
$ref: '#/components/schemas/WidgetAxis'
required:
Expand Down Expand Up @@ -3819,6 +3849,10 @@ components:
items:
$ref: '#/components/schemas/FormulaAndFunctionQueryDefinition'
type: array
query:
$ref: '#/components/schemas/FormulaAndFunctionMetricQueryDefinition'
request_type:
$ref: '#/components/schemas/DistributionWidgetHistogramRequestType'
response_format:
$ref: '#/components/schemas/FormulaAndFunctionResponseFormat'
rum_query:
Expand All @@ -3828,6 +3862,16 @@ components:
style:
$ref: '#/components/schemas/WidgetStyle'
type: object
HeatMapWidgetXAxis:
description: X Axis controls for the heat map widget.
properties:
num_buckets:
description: Number of time buckets to target, also known as the resolution
of the time bins. This is only applicable for distribution of points (group
distributions use the roll-up modifier).
format: int64
type: integer
type: object
Host:
description: Object representing a host.
properties:
Expand Down Expand Up @@ -25245,7 +25289,7 @@ components:
display_type:
description: "Combination of:\n - A severity error, warning, ok, or info\n
\ - A line type: dashed, solid, or bold\nIn this case of a Distribution
widget, this can be set to be `x_axis_percentile`."
widget, this can be set to be `percentile`."
example: error dashed
type: string
label:
Expand All @@ -25256,8 +25300,11 @@ components:
description: Timestamp for the widget.
type: string
value:
description: Value to apply. Can be a single value y = 15 or a range of
description: 'Value to apply. Can be a single value y = 15 or a range of
values 0 < y < 10.

For Distribution widgets with `display_type` set to `percentile`, this
should be a numeric percentile value (for example, "90" for P90).'
example: y = 15
type: string
required:
Expand Down
91 changes: 91 additions & 0 deletions examples/v1_dashboards_CreateDashboard_1093147852.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
// Create a new dashboard with distribution widget with markers and num_buckets
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
use datadog_api_client::datadogV1::model::Dashboard;
use datadog_api_client::datadogV1::model::DashboardLayoutType;
use datadog_api_client::datadogV1::model::DistributionWidgetDefinition;
use datadog_api_client::datadogV1::model::DistributionWidgetDefinitionType;
use datadog_api_client::datadogV1::model::DistributionWidgetRequest;
use datadog_api_client::datadogV1::model::DistributionWidgetXAxis;
use datadog_api_client::datadogV1::model::DistributionWidgetYAxis;
use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricAggregation;
use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource;
use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
use datadog_api_client::datadogV1::model::Widget;
use datadog_api_client::datadogV1::model::WidgetDefinition;
use datadog_api_client::datadogV1::model::WidgetLayout;
use datadog_api_client::datadogV1::model::WidgetMarker;
use datadog_api_client::datadogV1::model::WidgetTextAlign;

#[tokio::main]
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::DistributionWidgetDefinition(
Box::new(
DistributionWidgetDefinition::new(
vec![
DistributionWidgetRequest::new()
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionMetricQueryDefinition(
Box::new(
FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"avg:system.cpu.user{*} by {service}".to_string(),
).aggregator(FormulaAndFunctionMetricAggregation::AVG),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
],
DistributionWidgetDefinitionType::DISTRIBUTION,
)
.markers(
vec![
WidgetMarker::new("50".to_string()).display_type("percentile".to_string()),
WidgetMarker::new("99".to_string()).display_type("percentile".to_string()),
WidgetMarker::new("90".to_string()).display_type("percentile".to_string())
],
)
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string())
.xaxis(
DistributionWidgetXAxis::new()
.include_zero(true)
.max("auto".to_string())
.min("auto".to_string())
.num_buckets(55)
.scale("linear".to_string()),
)
.yaxis(
DistributionWidgetYAxis::new()
.include_zero(true)
.max("auto".to_string())
.min("auto".to_string())
.scale("linear".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());
}
}
100 changes: 100 additions & 0 deletions examples/v1_dashboards_CreateDashboard_1617893815.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
// Create a new dashboard with formula and function distribution widget
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
use datadog_api_client::datadogV1::model::Dashboard;
use datadog_api_client::datadogV1::model::DashboardLayoutType;
use datadog_api_client::datadogV1::model::DistributionWidgetDefinition;
use datadog_api_client::datadogV1::model::DistributionWidgetDefinitionType;
use datadog_api_client::datadogV1::model::DistributionWidgetRequest;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryGroupBy;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryGroupBySort;
use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
use datadog_api_client::datadogV1::model::QuerySortOrder;
use datadog_api_client::datadogV1::model::Widget;
use datadog_api_client::datadogV1::model::WidgetDefinition;
use datadog_api_client::datadogV1::model::WidgetLayout;
use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
use datadog_api_client::datadogV1::model::WidgetTextAlign;
use datadog_api_client::datadogV1::model::WidgetTime;

#[tokio::main]
async fn main() {
let body =
Dashboard::new(
DashboardLayoutType::FREE,
"Example-Dashboard".to_string(),
vec![
Widget::new(
WidgetDefinition::DistributionWidgetDefinition(
Box::new(
DistributionWidgetDefinition::new(
vec![
DistributionWidgetRequest::new()
.queries(
vec![
FormulaAndFunctionQueryDefinition
::FormulaAndFunctionEventQueryDefinition(
Box::new(
FormulaAndFunctionEventQueryDefinition::new(
FormulaAndFunctionEventQueryDefinitionCompute::new(
FormulaAndFunctionEventAggregation::AVG,
).metric("@duration".to_string()),
FormulaAndFunctionEventsDataSource::LOGS,
"query1".to_string(),
)
.group_by(
vec![
FormulaAndFunctionEventQueryGroupBy::new(
"service".to_string(),
)
.limit(1000)
.sort(
FormulaAndFunctionEventQueryGroupBySort
::new(
FormulaAndFunctionEventAggregation
::COUNT,
).order(QuerySortOrder::DESC),
)
],
)
.indexes(vec!["*".to_string()])
.search(
FormulaAndFunctionEventQueryDefinitionSearch::new(
"".to_string(),
),
)
.storage("hot".to_string()),
),
)
],
)
.response_format(FormulaAndFunctionResponseFormat::SCALAR)
],
DistributionWidgetDefinitionType::DISTRIBUTION,
)
.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))
],
)
.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());
}
}
64 changes: 64 additions & 0 deletions examples/v1_dashboards_CreateDashboard_2823363212.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// Create a new dashboard with heatmap widget with markers and num_buckets
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
use datadog_api_client::datadogV1::model::Dashboard;
use datadog_api_client::datadogV1::model::DashboardLayoutType;
use datadog_api_client::datadogV1::model::DistributionWidgetHistogramRequestType;
use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource;
use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
use datadog_api_client::datadogV1::model::HeatMapWidgetDefinition;
use datadog_api_client::datadogV1::model::HeatMapWidgetDefinitionType;
use datadog_api_client::datadogV1::model::HeatMapWidgetRequest;
use datadog_api_client::datadogV1::model::HeatMapWidgetXAxis;
use datadog_api_client::datadogV1::model::Widget;
use datadog_api_client::datadogV1::model::WidgetAxis;
use datadog_api_client::datadogV1::model::WidgetDefinition;
use datadog_api_client::datadogV1::model::WidgetLayout;
use datadog_api_client::datadogV1::model::WidgetMarker;
use datadog_api_client::datadogV1::model::WidgetTextAlign;

#[tokio::main]
async fn main() {
let body = Dashboard::new(
DashboardLayoutType::ORDERED,
"Example-Dashboard".to_string(),
vec![
Widget::new(WidgetDefinition::HeatMapWidgetDefinition(Box::new(
HeatMapWidgetDefinition::new(
vec![HeatMapWidgetRequest::new()
.query(FormulaAndFunctionMetricQueryDefinition::new(
FormulaAndFunctionMetricDataSource::METRICS,
"query1".to_string(),
"histogram:trace.servlet.request{*}".to_string(),
))
.request_type(DistributionWidgetHistogramRequestType::HISTOGRAM)],
HeatMapWidgetDefinitionType::HEATMAP,
)
.markers(vec![
WidgetMarker::new("50".to_string()).display_type("percentile".to_string()),
WidgetMarker::new("99".to_string()).display_type("percentile".to_string()),
])
.title("".to_string())
.title_align(WidgetTextAlign::LEFT)
.title_size("16".to_string())
.xaxis(HeatMapWidgetXAxis::new().num_buckets(75))
.yaxis(
WidgetAxis::new()
.include_zero(true)
.max("auto".to_string())
.min("auto".to_string())
.scale("linear".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());
}
}
2 changes: 2 additions & 0 deletions src/datadogV1/model/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,8 @@ pub mod model_event_query_definition;
pub use self::model_event_query_definition::EventQueryDefinition;
pub mod model_heat_map_widget_definition_type;
pub use self::model_heat_map_widget_definition_type::HeatMapWidgetDefinitionType;
pub mod model_heat_map_widget_x_axis;
pub use self::model_heat_map_widget_x_axis::HeatMapWidgetXAxis;
pub mod model_widget_axis;
pub use self::model_widget_axis::WidgetAxis;
pub mod model_host_map_widget_definition;
Expand Down
Loading
Loading