Skip to content

Commit a1c6395

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add apm_metrics query support to dashboard OpenAPI spec (#3301)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent f7cee34 commit a1c6395

24 files changed

+653
-0
lines changed

.generator/schemas/v1/openapi.yaml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2709,6 +2709,123 @@ components:
27092709
- service
27102710
- name
27112711
type: object
2712+
FormulaAndFunctionApmMetricStatName:
2713+
description: APM metric stat name.
2714+
enum:
2715+
- errors
2716+
- error_rate
2717+
- errors_per_second
2718+
- latency_avg
2719+
- latency_max
2720+
- latency_p50
2721+
- latency_p75
2722+
- latency_p90
2723+
- latency_p95
2724+
- latency_p99
2725+
- latency_p999
2726+
- latency_distribution
2727+
- hits
2728+
- hits_per_second
2729+
- total_time
2730+
- apdex
2731+
example: "hits"
2732+
type: string
2733+
x-enum-varnames:
2734+
- ERRORS
2735+
- ERROR_RATE
2736+
- ERRORS_PER_SECOND
2737+
- LATENCY_AVG
2738+
- LATENCY_MAX
2739+
- LATENCY_P50
2740+
- LATENCY_P75
2741+
- LATENCY_P90
2742+
- LATENCY_P95
2743+
- LATENCY_P99
2744+
- LATENCY_P999
2745+
- LATENCY_DISTRIBUTION
2746+
- HITS
2747+
- HITS_PER_SECOND
2748+
- TOTAL_TIME
2749+
- APDEX
2750+
FormulaAndFunctionApmMetricsDataSource:
2751+
description: Data source for APM metrics queries.
2752+
enum:
2753+
- apm_metrics
2754+
example: apm_metrics
2755+
type: string
2756+
x-enum-varnames:
2757+
- APM_METRICS
2758+
FormulaAndFunctionApmMetricsQueryDefinition:
2759+
description: A formula and functions APM metrics query.
2760+
properties:
2761+
data_source:
2762+
$ref: "#/components/schemas/FormulaAndFunctionApmMetricsDataSource"
2763+
group_by:
2764+
description: Optional fields to group the query results by.
2765+
items:
2766+
description: A field to group results by.
2767+
example: "resource_name"
2768+
type: string
2769+
type: array
2770+
name:
2771+
description: Name of this query to use in formulas.
2772+
example: "query_errors"
2773+
type: string
2774+
operation_mode:
2775+
description: Optional operation mode to aggregate across operation names.
2776+
example: "primary"
2777+
type: string
2778+
operation_name:
2779+
description: Name of operation on service. If not provided, the primary operation name is used.
2780+
example: "web.request"
2781+
type: string
2782+
peer_tags:
2783+
description: Tags to query for a specific downstream entity (peer.service, peer.db_instance, peer.s3, peer.s3.bucket, etc.).
2784+
items:
2785+
example: "peer.service:my-service"
2786+
type: string
2787+
type: array
2788+
query_filter:
2789+
description: Additional filters for the query using metrics query syntax (e.g., env, primary_tag).
2790+
example: "env:prod"
2791+
type: string
2792+
resource_hash:
2793+
description: The hash of a specific resource to filter by.
2794+
example: "abc123"
2795+
type: string
2796+
resource_name:
2797+
description: The full name of a specific resource to filter by.
2798+
example: "GET /api/v1/users"
2799+
type: string
2800+
service:
2801+
description: APM service name.
2802+
example: "web-store"
2803+
type: string
2804+
span_kind:
2805+
$ref: "#/components/schemas/FormulaAndFunctionApmMetricsSpanKind"
2806+
stat:
2807+
$ref: "#/components/schemas/FormulaAndFunctionApmMetricStatName"
2808+
required:
2809+
- data_source
2810+
- name
2811+
- stat
2812+
type: object
2813+
FormulaAndFunctionApmMetricsSpanKind:
2814+
description: Describes the relationship between the span, its parents, and its children in a trace.
2815+
enum:
2816+
- consumer
2817+
- server
2818+
- client
2819+
- producer
2820+
- internal
2821+
example: "server"
2822+
type: string
2823+
x-enum-varnames:
2824+
- CONSUMER
2825+
- SERVER
2826+
- CLIENT
2827+
- PRODUCER
2828+
- INTERNAL
27122829
FormulaAndFunctionApmResourceStatName:
27132830
description: APM resource stat name.
27142831
enum:
@@ -3138,6 +3255,7 @@ components:
31383255
- $ref: "#/components/schemas/FormulaAndFunctionProcessQueryDefinition"
31393256
- $ref: "#/components/schemas/FormulaAndFunctionApmDependencyStatsQueryDefinition"
31403257
- $ref: "#/components/schemas/FormulaAndFunctionApmResourceStatsQueryDefinition"
3258+
- $ref: "#/components/schemas/FormulaAndFunctionApmMetricsQueryDefinition"
31413259
- $ref: "#/components/schemas/FormulaAndFunctionSLOQueryDefinition"
31423260
- $ref: "#/components/schemas/FormulaAndFunctionCloudCostQueryDefinition"
31433261
FormulaAndFunctionResponseFormat:

docs/datadog_api_client.v1.model.rst

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,34 @@ datadog\_api\_client.v1.model.formula\_and\_function\_apm\_dependency\_stats\_qu
879879
:members:
880880
:show-inheritance:
881881

882+
datadog\_api\_client.v1.model.formula\_and\_function\_apm\_metric\_stat\_name module
883+
------------------------------------------------------------------------------------
884+
885+
.. automodule:: datadog_api_client.v1.model.formula_and_function_apm_metric_stat_name
886+
:members:
887+
:show-inheritance:
888+
889+
datadog\_api\_client.v1.model.formula\_and\_function\_apm\_metrics\_data\_source module
890+
---------------------------------------------------------------------------------------
891+
892+
.. automodule:: datadog_api_client.v1.model.formula_and_function_apm_metrics_data_source
893+
:members:
894+
:show-inheritance:
895+
896+
datadog\_api\_client.v1.model.formula\_and\_function\_apm\_metrics\_query\_definition module
897+
--------------------------------------------------------------------------------------------
898+
899+
.. automodule:: datadog_api_client.v1.model.formula_and_function_apm_metrics_query_definition
900+
:members:
901+
:show-inheritance:
902+
903+
datadog\_api\_client.v1.model.formula\_and\_function\_apm\_metrics\_span\_kind module
904+
-------------------------------------------------------------------------------------
905+
906+
.. automodule:: datadog_api_client.v1.model.formula_and_function_apm_metrics_span_kind
907+
:members:
908+
:show-inheritance:
909+
882910
datadog\_api\_client.v1.model.formula\_and\_function\_apm\_resource\_stat\_name module
883911
--------------------------------------------------------------------------------------
884912

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
"""
2+
Create a new dashboard with apm metrics widget
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_apm_metric_stat_name import FormulaAndFunctionApmMetricStatName
10+
from datadog_api_client.v1.model.formula_and_function_apm_metrics_data_source import (
11+
FormulaAndFunctionApmMetricsDataSource,
12+
)
13+
from datadog_api_client.v1.model.formula_and_function_apm_metrics_query_definition import (
14+
FormulaAndFunctionApmMetricsQueryDefinition,
15+
)
16+
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
17+
from datadog_api_client.v1.model.table_widget_definition import TableWidgetDefinition
18+
from datadog_api_client.v1.model.table_widget_definition_type import TableWidgetDefinitionType
19+
from datadog_api_client.v1.model.table_widget_request import TableWidgetRequest
20+
from datadog_api_client.v1.model.widget import Widget
21+
from datadog_api_client.v1.model.widget_layout import WidgetLayout
22+
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign
23+
24+
body = Dashboard(
25+
title="Example-Dashboard",
26+
widgets=[
27+
Widget(
28+
definition=TableWidgetDefinition(
29+
title="",
30+
title_size="16",
31+
title_align=WidgetTextAlign.LEFT,
32+
type=TableWidgetDefinitionType.QUERY_TABLE,
33+
requests=[
34+
TableWidgetRequest(
35+
response_format=FormulaAndFunctionResponseFormat.SCALAR,
36+
queries=[
37+
FormulaAndFunctionApmMetricsQueryDefinition(
38+
stat=FormulaAndFunctionApmMetricStatName.HITS,
39+
name="query1",
40+
service="web-store",
41+
data_source=FormulaAndFunctionApmMetricsDataSource.APM_METRICS,
42+
query_filter="env:prod",
43+
group_by=[
44+
"resource_name",
45+
],
46+
),
47+
],
48+
),
49+
],
50+
),
51+
layout=WidgetLayout(
52+
x=0,
53+
y=0,
54+
width=4,
55+
height=4,
56+
),
57+
),
58+
],
59+
layout_type=DashboardLayoutType.ORDERED,
60+
)
61+
62+
configuration = Configuration()
63+
with ApiClient(configuration) as api_client:
64+
api_instance = DashboardsApi(api_client)
65+
response = api_instance.create_dashboard(body=body)
66+
67+
print(response)

src/datadog_api_client/v1/model/bar_chart_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
from datadog_api_client.v1.model.formula_and_function_apm_resource_stats_query_definition import (
3838
FormulaAndFunctionApmResourceStatsQueryDefinition,
3939
)
40+
from datadog_api_client.v1.model.formula_and_function_apm_metrics_query_definition import (
41+
FormulaAndFunctionApmMetricsQueryDefinition,
42+
)
4043
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
4144
FormulaAndFunctionSLOQueryDefinition,
4245
)
@@ -116,6 +119,7 @@ def __init__(
116119
FormulaAndFunctionProcessQueryDefinition,
117120
FormulaAndFunctionApmDependencyStatsQueryDefinition,
118121
FormulaAndFunctionApmResourceStatsQueryDefinition,
122+
FormulaAndFunctionApmMetricsQueryDefinition,
119123
FormulaAndFunctionSLOQueryDefinition,
120124
FormulaAndFunctionCloudCostQueryDefinition,
121125
]

src/datadog_api_client/v1/model/change_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
from datadog_api_client.v1.model.formula_and_function_apm_resource_stats_query_definition import (
3939
FormulaAndFunctionApmResourceStatsQueryDefinition,
4040
)
41+
from datadog_api_client.v1.model.formula_and_function_apm_metrics_query_definition import (
42+
FormulaAndFunctionApmMetricsQueryDefinition,
43+
)
4144
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
4245
FormulaAndFunctionSLOQueryDefinition,
4346
)
@@ -125,6 +128,7 @@ def __init__(
125128
FormulaAndFunctionProcessQueryDefinition,
126129
FormulaAndFunctionApmDependencyStatsQueryDefinition,
127130
FormulaAndFunctionApmResourceStatsQueryDefinition,
131+
FormulaAndFunctionApmMetricsQueryDefinition,
128132
FormulaAndFunctionSLOQueryDefinition,
129133
FormulaAndFunctionCloudCostQueryDefinition,
130134
]

src/datadog_api_client/v1/model/distribution_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
from datadog_api_client.v1.model.formula_and_function_apm_resource_stats_query_definition import (
4141
FormulaAndFunctionApmResourceStatsQueryDefinition,
4242
)
43+
from datadog_api_client.v1.model.formula_and_function_apm_metrics_query_definition import (
44+
FormulaAndFunctionApmMetricsQueryDefinition,
45+
)
4346
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
4447
FormulaAndFunctionSLOQueryDefinition,
4548
)
@@ -121,6 +124,7 @@ def __init__(
121124
FormulaAndFunctionProcessQueryDefinition,
122125
FormulaAndFunctionApmDependencyStatsQueryDefinition,
123126
FormulaAndFunctionApmResourceStatsQueryDefinition,
127+
FormulaAndFunctionApmMetricsQueryDefinition,
124128
FormulaAndFunctionSLOQueryDefinition,
125129
FormulaAndFunctionCloudCostQueryDefinition,
126130
]
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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 FormulaAndFunctionApmMetricStatName(ModelSimple):
16+
"""
17+
APM metric stat name.
18+
19+
:param value: Must be one of ["errors", "error_rate", "errors_per_second", "latency_avg", "latency_max", "latency_p50", "latency_p75", "latency_p90", "latency_p95", "latency_p99", "latency_p999", "latency_distribution", "hits", "hits_per_second", "total_time", "apdex"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"errors",
25+
"error_rate",
26+
"errors_per_second",
27+
"latency_avg",
28+
"latency_max",
29+
"latency_p50",
30+
"latency_p75",
31+
"latency_p90",
32+
"latency_p95",
33+
"latency_p99",
34+
"latency_p999",
35+
"latency_distribution",
36+
"hits",
37+
"hits_per_second",
38+
"total_time",
39+
"apdex",
40+
}
41+
ERRORS: ClassVar["FormulaAndFunctionApmMetricStatName"]
42+
ERROR_RATE: ClassVar["FormulaAndFunctionApmMetricStatName"]
43+
ERRORS_PER_SECOND: ClassVar["FormulaAndFunctionApmMetricStatName"]
44+
LATENCY_AVG: ClassVar["FormulaAndFunctionApmMetricStatName"]
45+
LATENCY_MAX: ClassVar["FormulaAndFunctionApmMetricStatName"]
46+
LATENCY_P50: ClassVar["FormulaAndFunctionApmMetricStatName"]
47+
LATENCY_P75: ClassVar["FormulaAndFunctionApmMetricStatName"]
48+
LATENCY_P90: ClassVar["FormulaAndFunctionApmMetricStatName"]
49+
LATENCY_P95: ClassVar["FormulaAndFunctionApmMetricStatName"]
50+
LATENCY_P99: ClassVar["FormulaAndFunctionApmMetricStatName"]
51+
LATENCY_P999: ClassVar["FormulaAndFunctionApmMetricStatName"]
52+
LATENCY_DISTRIBUTION: ClassVar["FormulaAndFunctionApmMetricStatName"]
53+
HITS: ClassVar["FormulaAndFunctionApmMetricStatName"]
54+
HITS_PER_SECOND: ClassVar["FormulaAndFunctionApmMetricStatName"]
55+
TOTAL_TIME: ClassVar["FormulaAndFunctionApmMetricStatName"]
56+
APDEX: ClassVar["FormulaAndFunctionApmMetricStatName"]
57+
58+
@cached_property
59+
def openapi_types(_):
60+
return {
61+
"value": (str,),
62+
}
63+
64+
65+
FormulaAndFunctionApmMetricStatName.ERRORS = FormulaAndFunctionApmMetricStatName("errors")
66+
FormulaAndFunctionApmMetricStatName.ERROR_RATE = FormulaAndFunctionApmMetricStatName("error_rate")
67+
FormulaAndFunctionApmMetricStatName.ERRORS_PER_SECOND = FormulaAndFunctionApmMetricStatName("errors_per_second")
68+
FormulaAndFunctionApmMetricStatName.LATENCY_AVG = FormulaAndFunctionApmMetricStatName("latency_avg")
69+
FormulaAndFunctionApmMetricStatName.LATENCY_MAX = FormulaAndFunctionApmMetricStatName("latency_max")
70+
FormulaAndFunctionApmMetricStatName.LATENCY_P50 = FormulaAndFunctionApmMetricStatName("latency_p50")
71+
FormulaAndFunctionApmMetricStatName.LATENCY_P75 = FormulaAndFunctionApmMetricStatName("latency_p75")
72+
FormulaAndFunctionApmMetricStatName.LATENCY_P90 = FormulaAndFunctionApmMetricStatName("latency_p90")
73+
FormulaAndFunctionApmMetricStatName.LATENCY_P95 = FormulaAndFunctionApmMetricStatName("latency_p95")
74+
FormulaAndFunctionApmMetricStatName.LATENCY_P99 = FormulaAndFunctionApmMetricStatName("latency_p99")
75+
FormulaAndFunctionApmMetricStatName.LATENCY_P999 = FormulaAndFunctionApmMetricStatName("latency_p999")
76+
FormulaAndFunctionApmMetricStatName.LATENCY_DISTRIBUTION = FormulaAndFunctionApmMetricStatName("latency_distribution")
77+
FormulaAndFunctionApmMetricStatName.HITS = FormulaAndFunctionApmMetricStatName("hits")
78+
FormulaAndFunctionApmMetricStatName.HITS_PER_SECOND = FormulaAndFunctionApmMetricStatName("hits_per_second")
79+
FormulaAndFunctionApmMetricStatName.TOTAL_TIME = FormulaAndFunctionApmMetricStatName("total_time")
80+
FormulaAndFunctionApmMetricStatName.APDEX = FormulaAndFunctionApmMetricStatName("apdex")

0 commit comments

Comments
 (0)