Skip to content

Commit c68aa36

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Dashboards - Add semantic_mode support to FormulaAndFunctionMetricQueryDefinition (#2993)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 7096e39 commit c68aa36

15 files changed

+301
-0
lines changed

.generator/schemas/v1/openapi.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2952,11 +2952,24 @@ components:
29522952
description: Metrics query definition.
29532953
example: avg:system.cpu.user{*}
29542954
type: string
2955+
semantic_mode:
2956+
$ref: '#/components/schemas/FormulaAndFunctionMetricSemanticMode'
29552957
required:
29562958
- data_source
29572959
- query
29582960
- name
29592961
type: object
2962+
FormulaAndFunctionMetricSemanticMode:
2963+
description: Semantic mode for metrics queries. This determines how metrics
2964+
from different sources are combined or displayed.
2965+
enum:
2966+
- combined
2967+
- native
2968+
example: combined
2969+
type: string
2970+
x-enum-varnames:
2971+
- COMBINED
2972+
- NATIVE
29602973
FormulaAndFunctionProcessQueryDataSource:
29612974
description: Data sources that rely on the process backend.
29622975
enum:

docs/datadog_api_client.v1.model.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,13 @@ datadog\_api\_client.v1.model.formula\_and\_function\_metric\_query\_definition
893893
:members:
894894
:show-inheritance:
895895

896+
datadog\_api\_client.v1.model.formula\_and\_function\_metric\_semantic\_mode module
897+
-----------------------------------------------------------------------------------
898+
899+
.. automodule:: datadog_api_client.v1.model.formula_and_function_metric_semantic_mode
900+
:members:
901+
:show-inheritance:
902+
896903
datadog\_api\_client.v1.model.formula\_and\_function\_process\_query\_data\_source module
897904
-----------------------------------------------------------------------------------------
898905

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
"""
2+
Create a new dashboard with a timeseries widget using formulas and functions metrics query with native semantic_mode
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
7+
from datadog_api_client.v1.model.dashboard import Dashboard
8+
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
9+
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
10+
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
11+
FormulaAndFunctionMetricQueryDefinition,
12+
)
13+
from datadog_api_client.v1.model.formula_and_function_metric_semantic_mode import FormulaAndFunctionMetricSemanticMode
14+
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
15+
from datadog_api_client.v1.model.timeseries_widget_definition import TimeseriesWidgetDefinition
16+
from datadog_api_client.v1.model.timeseries_widget_definition_type import TimeseriesWidgetDefinitionType
17+
from datadog_api_client.v1.model.timeseries_widget_request import TimeseriesWidgetRequest
18+
from datadog_api_client.v1.model.widget import Widget
19+
from datadog_api_client.v1.model.widget_display_type import WidgetDisplayType
20+
from datadog_api_client.v1.model.widget_formula import WidgetFormula
21+
22+
body = Dashboard(
23+
layout_type=DashboardLayoutType.ORDERED,
24+
title="Example-Dashboard with native semantic_mode",
25+
widgets=[
26+
Widget(
27+
definition=TimeseriesWidgetDefinition(
28+
type=TimeseriesWidgetDefinitionType.TIMESERIES,
29+
requests=[
30+
TimeseriesWidgetRequest(
31+
queries=[
32+
FormulaAndFunctionMetricQueryDefinition(
33+
data_source=FormulaAndFunctionMetricDataSource.METRICS,
34+
name="query1",
35+
query="avg:system.cpu.user{*}",
36+
semantic_mode=FormulaAndFunctionMetricSemanticMode.NATIVE,
37+
),
38+
],
39+
response_format=FormulaAndFunctionResponseFormat.TIMESERIES,
40+
formulas=[
41+
WidgetFormula(
42+
formula="query1",
43+
),
44+
],
45+
display_type=WidgetDisplayType.LINE,
46+
),
47+
],
48+
),
49+
),
50+
],
51+
)
52+
53+
configuration = Configuration()
54+
with ApiClient(configuration) as api_client:
55+
api_instance = DashboardsApi(api_client)
56+
response = api_instance.create_dashboard(body=body)
57+
58+
print(response)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
"""
2+
Create a new dashboard with a timeseries widget using formulas and functions metrics query with combined semantic_mode
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
7+
from datadog_api_client.v1.model.dashboard import Dashboard
8+
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
9+
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
10+
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
11+
FormulaAndFunctionMetricQueryDefinition,
12+
)
13+
from datadog_api_client.v1.model.formula_and_function_metric_semantic_mode import FormulaAndFunctionMetricSemanticMode
14+
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
15+
from datadog_api_client.v1.model.timeseries_widget_definition import TimeseriesWidgetDefinition
16+
from datadog_api_client.v1.model.timeseries_widget_definition_type import TimeseriesWidgetDefinitionType
17+
from datadog_api_client.v1.model.timeseries_widget_request import TimeseriesWidgetRequest
18+
from datadog_api_client.v1.model.widget import Widget
19+
from datadog_api_client.v1.model.widget_display_type import WidgetDisplayType
20+
from datadog_api_client.v1.model.widget_formula import WidgetFormula
21+
22+
body = Dashboard(
23+
layout_type=DashboardLayoutType.ORDERED,
24+
title="Example-Dashboard with combined semantic_mode",
25+
widgets=[
26+
Widget(
27+
definition=TimeseriesWidgetDefinition(
28+
type=TimeseriesWidgetDefinitionType.TIMESERIES,
29+
requests=[
30+
TimeseriesWidgetRequest(
31+
queries=[
32+
FormulaAndFunctionMetricQueryDefinition(
33+
data_source=FormulaAndFunctionMetricDataSource.METRICS,
34+
name="query1",
35+
query="avg:system.cpu.user{*}",
36+
semantic_mode=FormulaAndFunctionMetricSemanticMode.COMBINED,
37+
),
38+
],
39+
response_format=FormulaAndFunctionResponseFormat.TIMESERIES,
40+
formulas=[
41+
WidgetFormula(
42+
formula="query1",
43+
),
44+
],
45+
display_type=WidgetDisplayType.LINE,
46+
),
47+
],
48+
),
49+
),
50+
],
51+
)
52+
53+
configuration = Configuration()
54+
with ApiClient(configuration) as api_client:
55+
api_instance = DashboardsApi(api_client)
56+
response = api_instance.create_dashboard(body=body)
57+
58+
print(response)

src/datadog_api_client/v1/model/distribution_widget_histogram_request_query.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ def __init__(self, **kwargs):
3030
:param query: Metrics query definition.
3131
:type query: str
3232
33+
:param semantic_mode: Semantic mode for metrics queries. This determines how metrics from different sources are combined or displayed.
34+
:type semantic_mode: FormulaAndFunctionMetricSemanticMode, optional
35+
3336
:param compute: Compute options.
3437
:type compute: FormulaAndFunctionEventQueryDefinitionCompute
3538

src/datadog_api_client/v1/model/formula_and_function_metric_query_definition.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
if TYPE_CHECKING:
1717
from datadog_api_client.v1.model.formula_and_function_metric_aggregation import FormulaAndFunctionMetricAggregation
1818
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
19+
from datadog_api_client.v1.model.formula_and_function_metric_semantic_mode import (
20+
FormulaAndFunctionMetricSemanticMode,
21+
)
1922

2023

2124
class FormulaAndFunctionMetricQueryDefinition(ModelNormal):
@@ -33,13 +36,17 @@ def openapi_types(_):
3336
from datadog_api_client.v1.model.formula_and_function_metric_data_source import (
3437
FormulaAndFunctionMetricDataSource,
3538
)
39+
from datadog_api_client.v1.model.formula_and_function_metric_semantic_mode import (
40+
FormulaAndFunctionMetricSemanticMode,
41+
)
3642

3743
return {
3844
"aggregator": (FormulaAndFunctionMetricAggregation,),
3945
"cross_org_uuids": ([str],),
4046
"data_source": (FormulaAndFunctionMetricDataSource,),
4147
"name": (str,),
4248
"query": (str,),
49+
"semantic_mode": (FormulaAndFunctionMetricSemanticMode,),
4350
}
4451

4552
attribute_map = {
@@ -48,6 +55,7 @@ def openapi_types(_):
4855
"data_source": "data_source",
4956
"name": "name",
5057
"query": "query",
58+
"semantic_mode": "semantic_mode",
5159
}
5260

5361
def __init__(
@@ -57,6 +65,7 @@ def __init__(
5765
query: str,
5866
aggregator: Union[FormulaAndFunctionMetricAggregation, UnsetType] = unset,
5967
cross_org_uuids: Union[List[str], UnsetType] = unset,
68+
semantic_mode: Union[FormulaAndFunctionMetricSemanticMode, UnsetType] = unset,
6069
**kwargs,
6170
):
6271
"""
@@ -76,11 +85,16 @@ def __init__(
7685
7786
:param query: Metrics query definition.
7887
:type query: str
88+
89+
:param semantic_mode: Semantic mode for metrics queries. This determines how metrics from different sources are combined or displayed.
90+
:type semantic_mode: FormulaAndFunctionMetricSemanticMode, optional
7991
"""
8092
if aggregator is not unset:
8193
kwargs["aggregator"] = aggregator
8294
if cross_org_uuids is not unset:
8395
kwargs["cross_org_uuids"] = cross_org_uuids
96+
if semantic_mode is not unset:
97+
kwargs["semantic_mode"] = semantic_mode
8498
super().__init__(kwargs)
8599

86100
self_.data_source = data_source
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
7+
from datadog_api_client.model_utils import (
8+
ModelSimple,
9+
cached_property,
10+
)
11+
12+
from typing import ClassVar
13+
14+
15+
class FormulaAndFunctionMetricSemanticMode(ModelSimple):
16+
"""
17+
Semantic mode for metrics queries. This determines how metrics from different sources are combined or displayed.
18+
19+
:param value: Must be one of ["combined", "native"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"combined",
25+
"native",
26+
}
27+
COMBINED: ClassVar["FormulaAndFunctionMetricSemanticMode"]
28+
NATIVE: ClassVar["FormulaAndFunctionMetricSemanticMode"]
29+
30+
@cached_property
31+
def openapi_types(_):
32+
return {
33+
"value": (str,),
34+
}
35+
36+
37+
FormulaAndFunctionMetricSemanticMode.COMBINED = FormulaAndFunctionMetricSemanticMode("combined")
38+
FormulaAndFunctionMetricSemanticMode.NATIVE = FormulaAndFunctionMetricSemanticMode("native")

src/datadog_api_client/v1/model/formula_and_function_query_definition.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ def __init__(self, **kwargs):
3030
:param query: Metrics query definition.
3131
:type query: str
3232
33+
:param semantic_mode: Semantic mode for metrics queries. This determines how metrics from different sources are combined or displayed.
34+
:type semantic_mode: FormulaAndFunctionMetricSemanticMode, optional
35+
3336
:param compute: Compute options.
3437
:type compute: FormulaAndFunctionEventQueryDefinitionCompute
3538

src/datadog_api_client/v1/model/slo_data_source_query_definition.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ def __init__(self, **kwargs):
2929
3030
:param query: Metrics query definition.
3131
:type query: str
32+
33+
:param semantic_mode: Semantic mode for metrics queries. This determines how metrics from different sources are combined or displayed.
34+
:type semantic_mode: FormulaAndFunctionMetricSemanticMode, optional
3235
"""
3336
super().__init__(kwargs)
3437

src/datadog_api_client/v1/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@
155155
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
156156
FormulaAndFunctionMetricQueryDefinition,
157157
)
158+
from datadog_api_client.v1.model.formula_and_function_metric_semantic_mode import FormulaAndFunctionMetricSemanticMode
158159
from datadog_api_client.v1.model.formula_and_function_process_query_data_source import (
159160
FormulaAndFunctionProcessQueryDataSource,
160161
)
@@ -1248,6 +1249,7 @@
12481249
"FormulaAndFunctionMetricAggregation",
12491250
"FormulaAndFunctionMetricDataSource",
12501251
"FormulaAndFunctionMetricQueryDefinition",
1252+
"FormulaAndFunctionMetricSemanticMode",
12511253
"FormulaAndFunctionProcessQueryDataSource",
12521254
"FormulaAndFunctionProcessQueryDefinition",
12531255
"FormulaAndFunctionQueryDefinition",

0 commit comments

Comments
 (0)