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
7 changes: 7 additions & 0 deletions docs/datadog_api_client.v1.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,13 @@ datadog\_api\_client.v1.model.heat\_map\_widget\_request module
:members:
:show-inheritance:

datadog\_api\_client.v1.model.heat\_map\_widget\_x\_axis module
---------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.heat_map_widget_x_axis
:members:
:show-inheritance:

datadog\_api\_client.v1.model.host module
-----------------------------------------

Expand Down
91 changes: 91 additions & 0 deletions examples/v1/dashboards/CreateDashboard_1093147852.py
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
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
from datadog_api_client.v1.model.dashboard import Dashboard
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
from datadog_api_client.v1.model.distribution_widget_definition import DistributionWidgetDefinition
from datadog_api_client.v1.model.distribution_widget_definition_type import DistributionWidgetDefinitionType
from datadog_api_client.v1.model.distribution_widget_request import DistributionWidgetRequest
from datadog_api_client.v1.model.distribution_widget_x_axis import DistributionWidgetXAxis
from datadog_api_client.v1.model.distribution_widget_y_axis import DistributionWidgetYAxis
from datadog_api_client.v1.model.formula_and_function_metric_aggregation import FormulaAndFunctionMetricAggregation
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
FormulaAndFunctionMetricQueryDefinition,
)
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
from datadog_api_client.v1.model.widget import Widget
from datadog_api_client.v1.model.widget_layout import WidgetLayout
from datadog_api_client.v1.model.widget_marker import WidgetMarker
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign

body = Dashboard(
title="Example-Dashboard",
widgets=[
Widget(
definition=DistributionWidgetDefinition(
title="",
title_size="16",
title_align=WidgetTextAlign.LEFT,
type=DistributionWidgetDefinitionType.DISTRIBUTION,
xaxis=DistributionWidgetXAxis(
scale="linear",
min="auto",
max="auto",
include_zero=True,
num_buckets=55,
),
yaxis=DistributionWidgetYAxis(
scale="linear",
min="auto",
max="auto",
include_zero=True,
),
markers=[
WidgetMarker(
display_type="percentile",
value="50",
),
WidgetMarker(
display_type="percentile",
value="99",
),
WidgetMarker(
display_type="percentile",
value="90",
),
],
requests=[
DistributionWidgetRequest(
response_format=FormulaAndFunctionResponseFormat.SCALAR,
queries=[
FormulaAndFunctionMetricQueryDefinition(
data_source=FormulaAndFunctionMetricDataSource.METRICS,
name="query1",
query="avg:system.cpu.user{*} by {service}",
aggregator=FormulaAndFunctionMetricAggregation.AVG,
),
],
),
],
),
layout=WidgetLayout(
x=0,
y=0,
width=4,
height=4,
),
),
],
layout_type=DashboardLayoutType.ORDERED,
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = DashboardsApi(api_client)
response = api_instance.create_dashboard(body=body)

print(response)
95 changes: 95 additions & 0 deletions examples/v1/dashboards/CreateDashboard_1617893815.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
"""
Create a new dashboard with formula and function distribution widget
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
from datadog_api_client.v1.model.dashboard import Dashboard
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
from datadog_api_client.v1.model.distribution_widget_definition import DistributionWidgetDefinition
from datadog_api_client.v1.model.distribution_widget_definition_type import DistributionWidgetDefinitionType
from datadog_api_client.v1.model.distribution_widget_request import DistributionWidgetRequest
from datadog_api_client.v1.model.formula_and_function_event_aggregation import FormulaAndFunctionEventAggregation
from datadog_api_client.v1.model.formula_and_function_event_query_definition import (
FormulaAndFunctionEventQueryDefinition,
)
from datadog_api_client.v1.model.formula_and_function_event_query_definition_compute import (
FormulaAndFunctionEventQueryDefinitionCompute,
)
from datadog_api_client.v1.model.formula_and_function_event_query_definition_search import (
FormulaAndFunctionEventQueryDefinitionSearch,
)
from datadog_api_client.v1.model.formula_and_function_event_query_group_by import FormulaAndFunctionEventQueryGroupBy
from datadog_api_client.v1.model.formula_and_function_event_query_group_by_sort import (
FormulaAndFunctionEventQueryGroupBySort,
)
from datadog_api_client.v1.model.formula_and_function_events_data_source import FormulaAndFunctionEventsDataSource
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
from datadog_api_client.v1.model.query_sort_order import QuerySortOrder
from datadog_api_client.v1.model.widget import Widget
from datadog_api_client.v1.model.widget_layout import WidgetLayout
from datadog_api_client.v1.model.widget_legacy_live_span import WidgetLegacyLiveSpan
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign

body = Dashboard(
title="Example-Dashboard",
widgets=[
Widget(
layout=WidgetLayout(
x=0,
y=0,
width=47,
height=15,
),
definition=DistributionWidgetDefinition(
title="",
title_size="16",
title_align=WidgetTextAlign.LEFT,
time=WidgetLegacyLiveSpan(),
type=DistributionWidgetDefinitionType.DISTRIBUTION,
requests=[
DistributionWidgetRequest(
response_format=FormulaAndFunctionResponseFormat.SCALAR,
queries=[
FormulaAndFunctionEventQueryDefinition(
data_source=FormulaAndFunctionEventsDataSource.LOGS,
name="query1",
search=FormulaAndFunctionEventQueryDefinitionSearch(
query="",
),
indexes=[
"*",
],
compute=FormulaAndFunctionEventQueryDefinitionCompute(
aggregation=FormulaAndFunctionEventAggregation.AVG,
metric="@duration",
),
group_by=[
FormulaAndFunctionEventQueryGroupBy(
facet="service",
limit=1000,
sort=FormulaAndFunctionEventQueryGroupBySort(
aggregation=FormulaAndFunctionEventAggregation.COUNT,
order=QuerySortOrder.DESC,
),
),
],
storage="hot",
),
],
),
],
),
),
],
template_variables=[],
layout_type=DashboardLayoutType.FREE,
notify_list=[],
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = DashboardsApi(api_client)
response = api_instance.create_dashboard(body=body)

print(response)
Loading