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
69 changes: 58 additions & 11 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 @@ -1799,14 +1802,6 @@ components:
- $ref: '#/components/schemas/FormulaAndFunctionMetricQueryDefinition'
- $ref: '#/components/schemas/FormulaAndFunctionEventQueryDefinition'
- $ref: '#/components/schemas/FormulaAndFunctionApmResourceStatsQueryDefinition'
DistributionWidgetHistogramRequestType:
description: Request type for the histogram request.
enum:
- histogram
example: histogram
type: string
x-enum-varnames:
- HISTOGRAM
DistributionWidgetRequest:
description: Updated distribution widget.
properties:
Expand All @@ -1816,6 +1811,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 +1827,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'
$ref: '#/components/schemas/WidgetHistogramRequestType'
response_format:
$ref: '#/components/schemas/FormulaAndFunctionResponseFormat'
rum_query:
$ref: '#/components/schemas/LogQueryDefinition'
security_query:
Expand All @@ -1854,6 +1861,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 +3764,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 +3796,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 +3841,10 @@ components:
items:
$ref: '#/components/schemas/FormulaAndFunctionQueryDefinition'
type: array
query:
$ref: '#/components/schemas/FormulaAndFunctionMetricQueryDefinition'
request_type:
$ref: '#/components/schemas/WidgetHistogramRequestType'
response_format:
$ref: '#/components/schemas/FormulaAndFunctionResponseFormat'
rum_query:
Expand All @@ -3828,6 +3854,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 @@ -25041,6 +25077,14 @@ components:
x-enum-varnames:
- CHECK
- CLUSTER
WidgetHistogramRequestType:
description: Request type for the histogram request.
enum:
- histogram
example: histogram
type: string
x-enum-varnames:
- HISTOGRAM
WidgetHorizontalAlign:
description: Horizontal alignment.
enum:
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());
}
}
4 changes: 2 additions & 2 deletions examples/v1_dashboards_CreateDashboard_1442588603.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ 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::DistributionWidgetHistogramRequestQuery;
use datadog_api_client::datadogV1::model::DistributionWidgetHistogramRequestType;
use datadog_api_client::datadogV1::model::DistributionWidgetRequest;
use datadog_api_client::datadogV1::model::DistributionWidgetXAxis;
use datadog_api_client::datadogV1::model::DistributionWidgetYAxis;
Expand All @@ -16,6 +15,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionApmResourceStatsData
use datadog_api_client::datadogV1::model::FormulaAndFunctionApmResourceStatsQueryDefinition;
use datadog_api_client::datadogV1::model::Widget;
use datadog_api_client::datadogV1::model::WidgetDefinition;
use datadog_api_client::datadogV1::model::WidgetHistogramRequestType;
use datadog_api_client::datadogV1::model::WidgetLayout;
use datadog_api_client::datadogV1::model::WidgetStyle;
use datadog_api_client::datadogV1::model::WidgetTextAlign;
Expand Down Expand Up @@ -52,7 +52,7 @@ async fn main() {
),
),
)
.request_type(DistributionWidgetHistogramRequestType::HISTOGRAM)
.request_type(WidgetHistogramRequestType::HISTOGRAM)
.style(WidgetStyle::new().palette("dog_classic".to_string()))
],
DistributionWidgetDefinitionType::DISTRIBUTION,
Expand Down
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());
}
}
Loading
Loading