diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 75755ab7e79f..989b04c9b04e 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -4068,6 +4068,293 @@ components: example: "90646597-5fdb-4a17-a240-647003f8c028" format: uuid type: string + ApmDependencyStatName: + description: The APM dependency statistic to query. + enum: + - avg_duration + - avg_root_duration + - avg_spans_per_trace + - error_rate + - pct_exec_time + - pct_of_traces + - total_traces_count + example: avg_duration + type: string + x-enum-varnames: + - AVG_DURATION + - AVG_ROOT_DURATION + - AVG_SPANS_PER_TRACE + - ERROR_RATE + - PCT_EXEC_TIME + - PCT_OF_TRACES + - TOTAL_TRACES_COUNT + ApmDependencyStatsDataSource: + default: apm_dependency_stats + description: A data source for APM dependency statistics queries. + enum: + - apm_dependency_stats + example: apm_dependency_stats + type: string + x-enum-varnames: + - APM_DEPENDENCY_STATS + ApmDependencyStatsQuery: + description: >- + A query for APM dependency statistics between services, such as call latency and error rates. + properties: + data_source: + $ref: "#/components/schemas/ApmDependencyStatsDataSource" + env: + description: The environment to query. + example: prod + type: string + is_upstream: + description: Determines whether stats for upstream or downstream dependencies should be queried. + example: true + type: boolean + name: + description: The variable name for use in formulas. + example: query1 + type: string + operation_name: + description: The APM operation name. + example: web.request + type: string + primary_tag_name: + description: The name of the second primary tag used within APM; required when `primary_tag_value` is specified. See https://docs.datadoghq.com/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog. + example: datacenter + type: string + primary_tag_value: + description: Filter APM data by the second primary tag. `primary_tag_name` must also be specified. + example: us-east-1 + type: string + resource_name: + description: The resource name to filter by. + example: "GET /api/v2/users" + type: string + service: + description: The service name to filter by. + example: web-store + type: string + stat: + $ref: "#/components/schemas/ApmDependencyStatName" + required: + - data_source + - name + - env + - operation_name + - resource_name + - service + - stat + type: object + ApmMetricsDataSource: + default: apm_metrics + description: A data source for APM metrics queries. + enum: + - apm_metrics + example: apm_metrics + type: string + x-enum-varnames: + - APM_METRICS + ApmMetricsQuery: + description: >- + A query for APM trace metrics such as hits, errors, and latency percentiles, aggregated across services. + properties: + data_source: + $ref: "#/components/schemas/ApmMetricsDataSource" + group_by: + description: Optional fields to group the query results by. + items: + description: A field to group results by. + example: service + type: string + type: array + name: + description: The variable name for use in formulas. + example: query1 + type: string + operation_mode: + description: Optional operation mode to aggregate across operation names. + example: "primary" + type: string + operation_name: + description: Name of operation on service. If not provided, the primary operation name is used. + example: web.request + type: string + peer_tags: + description: Tags to query for a specific downstream entity (peer.service, peer.db_instance, peer.s3, peer.s3.bucket, etc.). + items: + description: A peer tag value. + example: "peer.service:my-service" + type: string + type: array + query_filter: + description: Additional filters for the query using metrics query syntax (for example, env, primary_tag). + example: "env:prod" + type: string + resource_hash: + description: The resource hash for exact matching. + example: "abc123" + type: string + resource_name: + description: The full name of a specific resource to filter by. + example: "GET /api/v1/users" + type: string + service: + description: The service name to filter by. + example: web-store + type: string + span_kind: + $ref: "#/components/schemas/ApmMetricsSpanKind" + stat: + $ref: "#/components/schemas/ApmMetricsStat" + required: + - data_source + - name + - stat + type: object + ApmMetricsSpanKind: + description: Describes the relationship between the span, its parents, and its children in a trace. + enum: + - consumer + - server + - client + - producer + - internal + example: server + type: string + x-enum-varnames: + - CONSUMER + - SERVER + - CLIENT + - PRODUCER + - INTERNAL + ApmMetricsStat: + description: The APM metric statistic to query. + enum: + - error_rate + - errors + - errors_per_second + - hits + - hits_per_second + - apdex + - latency_avg + - latency_max + - latency_p50 + - latency_p75 + - latency_p90 + - latency_p95 + - latency_p99 + - latency_p999 + - latency_distribution + - total_time + example: latency_p99 + type: string + x-enum-varnames: + - ERROR_RATE + - ERRORS + - ERRORS_PER_SECOND + - HITS + - HITS_PER_SECOND + - APDEX + - LATENCY_AVG + - LATENCY_MAX + - LATENCY_P50 + - LATENCY_P75 + - LATENCY_P90 + - LATENCY_P95 + - LATENCY_P99 + - LATENCY_P999 + - LATENCY_DISTRIBUTION + - TOTAL_TIME + ApmResourceStatName: + description: The APM resource statistic to query. + enum: + - error_rate + - errors + - hits + - latency_avg + - latency_max + - latency_p50 + - latency_p75 + - latency_p90 + - latency_p95 + - latency_p99 + - latency_distribution + - total_time + example: latency_p95 + type: string + x-enum-varnames: + - ERROR_RATE + - ERRORS + - HITS + - LATENCY_AVG + - LATENCY_MAX + - LATENCY_P50 + - LATENCY_P75 + - LATENCY_P90 + - LATENCY_P95 + - LATENCY_P99 + - LATENCY_DISTRIBUTION + - TOTAL_TIME + ApmResourceStatsDataSource: + default: apm_resource_stats + description: A data source for APM resource statistics queries. + enum: + - apm_resource_stats + example: apm_resource_stats + type: string + x-enum-varnames: + - APM_RESOURCE_STATS + ApmResourceStatsQuery: + description: >- + A query for APM resource statistics such as latency, error rate, and hit count, grouped by resource name. + properties: + data_source: + $ref: "#/components/schemas/ApmResourceStatsDataSource" + env: + description: The environment to query. + example: prod + type: string + group_by: + description: Tag keys to group results by. + items: + description: A tag key to group by. + example: resource_name + type: string + type: array + name: + description: The variable name for use in formulas. + example: query1 + type: string + operation_name: + description: The APM operation name. + example: web.request + type: string + primary_tag_name: + description: Name of the second primary tag used within APM. Required when `primary_tag_value` is specified. See https://docs.datadoghq.com/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog + example: datacenter + type: string + primary_tag_value: + description: Value of the second primary tag by which to filter APM data. `primary_tag_name` must also be specified. + example: us-east-1 + type: string + resource_name: + description: The resource name to filter by. + example: "Admin::ProductsController#create" + type: string + service: + description: The service name to filter by. + example: web-store + type: string + stat: + $ref: "#/components/schemas/ApmResourceStatName" + required: + - data_source + - name + - env + - service + - stat + type: object ApmRetentionFilterType: default: apm_retention_filter description: The type of the resource. @@ -14182,6 +14469,15 @@ components: type: string type: array type: object + ContainerDataSource: + default: container + description: A data source for container-level infrastructure metrics. + enum: + - container + example: container + type: string + x-enum-varnames: + - CONTAINER ContainerGroup: description: Container group object. properties: @@ -14593,6 +14889,82 @@ components: type: string x-enum-varnames: - CURSOR_LIMIT + ContainerScalarQuery: + description: A query for container-level metrics such as CPU and memory usage. + properties: + aggregator: + $ref: "#/components/schemas/MetricsAggregator" + data_source: + $ref: "#/components/schemas/ContainerDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The container metric to query. + example: process.stat.container.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down containers. + items: + description: A tag filter value. + example: "env:prod" + type: string + type: array + text_filter: + description: A full-text search filter to match container names. + type: string + required: + - data_source + - name + - metric + type: object + ContainerTimeseriesQuery: + description: A query for container-level metrics such as CPU and memory usage. + properties: + data_source: + $ref: "#/components/schemas/ContainerDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The container metric to query. + example: process.stat.container.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down containers. + items: + description: A tag filter value. + example: "env:prod" + type: string + type: array + text_filter: + description: A full-text search filter to match container names. + type: string + required: + - data_source + - name + - metric + type: object ContainerType: default: container description: Type of container. @@ -25222,13 +25594,35 @@ components: description: A data source that is powered by the Events Platform. enum: - logs + - spans + - network - rum + - security_signals + - profiles + - audit + - events + - ci_tests + - ci_pipelines + - incident_analytics + - product_analytics + - on_call_events - dora example: logs type: string x-enum-varnames: - LOGS + - SPANS + - NETWORK - RUM + - SECURITY_SIGNALS + - PROFILES + - AUDIT + - EVENTS + - CI_TESTS + - CI_PIPELINES + - INCIDENT_ANALYTICS + - PRODUCT_ANALYTICS + - ON_CALL_EVENTS - DORA EventsGroupBy: description: A dimension on which to split a query's results. @@ -25397,7 +25791,8 @@ components: type: string type: object EventsScalarQuery: - description: An individual scalar events query. + description: >- + An individual scalar query for logs, RUM, traces, CI pipelines, security signals, and other event-based data sources. Use this query type for any data source powered by the Events Platform. See the data_source field for the full list of supported sources. properties: compute: $ref: "#/components/schemas/EventsCompute" @@ -25449,7 +25844,8 @@ components: - ALPHABETICAL - MEASURE EventsTimeseriesQuery: - description: An individual timeseries events query. + description: >- + An individual timeseries query for logs, RUM, traces, CI pipelines, security signals, and other event-based data sources. Use this query type for any data source powered by the Events Platform. See the data_source field for the full list of supported sources. properties: compute: $ref: "#/components/schemas/EventsCompute" @@ -42238,7 +42634,7 @@ components: type: string type: object MetricsScalarQuery: - description: An individual scalar metrics query. + description: A query against Datadog custom metrics or Cloud Cost data sources. properties: aggregator: $ref: "#/components/schemas/MetricsAggregator" @@ -42257,7 +42653,7 @@ components: - aggregator type: object MetricsTimeseriesQuery: - description: An individual timeseries metrics query. + description: A query against Datadog custom metrics or Cloud Cost data sources. properties: data_source: $ref: "#/components/schemas/MetricsDataSource" @@ -52920,6 +53316,54 @@ components: required: - type type: object + ProcessDataSource: + default: process + description: A data source for process-level infrastructure metrics. + enum: + - process + example: process + type: string + x-enum-varnames: + - PROCESS + ProcessScalarQuery: + description: A query for host-level process metrics such as CPU and memory usage. + properties: + aggregator: + $ref: "#/components/schemas/MetricsAggregator" + data_source: + $ref: "#/components/schemas/ProcessDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The process metric to query. + example: process.stat.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down processes. + items: + description: A tag filter value. + example: "env:prod" + type: string + type: array + text_filter: + description: A full-text search filter to match process names or commands. + type: string + required: + - data_source + - name + - metric + type: object ProcessSummariesMeta: description: Response metadata object. properties: @@ -53006,6 +53450,43 @@ components: type: string x-enum-varnames: - PROCESS + ProcessTimeseriesQuery: + description: A query for host-level process metrics such as CPU and memory usage. + properties: + data_source: + $ref: "#/components/schemas/ProcessDataSource" + is_normalized_cpu: + description: Whether CPU metrics should be normalized by core count. + type: boolean + limit: + description: Maximum number of results to return. + format: int64 + type: integer + metric: + description: The process metric to query. + example: process.stat.cpu.total_pct + type: string + name: + description: The variable name for use in formulas. + example: query1 + type: string + sort: + $ref: "#/components/schemas/QuerySortOrder" + tag_filters: + description: Tag filters to narrow down processes. + items: + description: A tag filter value. + example: "env:prod" + type: string + type: array + text_filter: + description: A full-text search filter to match process names or commands. + type: string + required: + - data_source + - name + - metric + type: object ProductAnalyticsAnalyticsQuery: description: The analytics query definition containing a base query, compute rule, and optional grouping. properties: @@ -59209,6 +59690,12 @@ components: oneOf: - $ref: "#/components/schemas/MetricsScalarQuery" - $ref: "#/components/schemas/EventsScalarQuery" + - $ref: "#/components/schemas/ApmResourceStatsQuery" + - $ref: "#/components/schemas/ApmMetricsQuery" + - $ref: "#/components/schemas/ApmDependencyStatsQuery" + - $ref: "#/components/schemas/SloQuery" + - $ref: "#/components/schemas/ProcessScalarQuery" + - $ref: "#/components/schemas/ContainerScalarQuery" ScalarResponse: description: A message containing the response to a scalar query. properties: @@ -67092,6 +67579,51 @@ components: required: - slackTrigger type: object + SloDataSource: + default: slo + description: A data source for SLO queries. + enum: + - slo + example: slo + type: string + x-enum-varnames: + - SLO + SloQuery: + description: A query for SLO status, error budget, and burn rate metrics. + example: + additional_query_filters: "*" + data_source: "slo" + group_mode: "overall" + measure: "good_events" + name: "my_slo" + slo_id: "12345678910" + slo_query_type: "metric" + properties: + additional_query_filters: + description: Additional filters applied to the SLO query. + example: "host:host_a,env:prod" + type: string + data_source: + $ref: "#/components/schemas/SloDataSource" + group_mode: + $ref: "#/components/schemas/SlosGroupMode" + measure: + $ref: "#/components/schemas/SlosMeasure" + name: + description: The variable name for use in formulas. + example: query1 + type: string + slo_id: + description: The unique identifier of the SLO to query. + example: "a]b123c45de6f78g90h" + type: string + slo_query_type: + $ref: "#/components/schemas/SlosQueryType" + required: + - data_source + - slo_id + - measure + type: object SloReportCreateRequest: description: The SLO report request body. properties: @@ -67199,6 +67731,54 @@ components: type: string x-enum-varnames: - SLO_STATUS + SlosGroupMode: + description: How SLO results are grouped in the response. + enum: + - overall + - components + example: overall + type: string + x-enum-varnames: + - OVERALL + - COMPONENTS + SlosMeasure: + description: The SLO measurement to retrieve. + enum: + - good_events + - bad_events + - slo_status + - error_budget_remaining + - error_budget_remaining_history + - error_budget_burndown + - burn_rate + - slo_status_history + - good_minutes + - bad_minutes + example: slo_status + type: string + x-enum-varnames: + - GOOD_EVENTS + - BAD_EVENTS + - SLO_STATUS + - ERROR_BUDGET_REMAINING + - ERROR_BUDGET_REMAINING_HISTORY + - ERROR_BUDGET_BURNDOWN + - BURN_RATE + - SLO_STATUS_HISTORY + - GOOD_MINUTES + - BAD_MINUTES + SlosQueryType: + description: The type of SLO definition being queried. + enum: + - metric + - time_slice + - monitor + example: metric + type: string + x-enum-varnames: + - METRIC + - TIME_SLICE + - MONITOR Snapshot: description: A single heatmap snapshot resource returned by create or update operations. properties: @@ -74269,6 +74849,12 @@ components: oneOf: - $ref: "#/components/schemas/MetricsTimeseriesQuery" - $ref: "#/components/schemas/EventsTimeseriesQuery" + - $ref: "#/components/schemas/ApmResourceStatsQuery" + - $ref: "#/components/schemas/ApmMetricsQuery" + - $ref: "#/components/schemas/ApmDependencyStatsQuery" + - $ref: "#/components/schemas/SloQuery" + - $ref: "#/components/schemas/ProcessTimeseriesQuery" + - $ref: "#/components/schemas/ContainerTimeseriesQuery" TimeseriesResponse: description: A message containing the response to a timeseries query. properties: diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/frozen.json new file mode 100644 index 000000000000..17b54c84dcdf --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:29.994Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/recording.har new file mode 100644 index 000000000000..7f27532ad32e --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_1257822553/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with apm_dependency_stats data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b500451c53464b5849afdb6ff1691048", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 504, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658329000,\"queries\":[{\"data_source\":\"apm_dependency_stats\",\"env\":\"ci\",\"name\":\"a\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"service\":\"cassandra\",\"stat\":\"avg_duration\"}],\"to\":1775661929000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 248, + "content": { + "mimeType": "application/vnd.api+json", + "size": 248, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":[{\"family\":\"time\",\"name\":\"microsecond\",\"plural\":\"microseconds\",\"scale_factor\":0.000001,\"short_name\":\"\u03bcs\",\"id\":9},null]}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 663, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:30.862Z", + "time": 184 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/frozen.json new file mode 100644 index 000000000000..1f11bc334cbe --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/frozen.json @@ -0,0 +1 @@ +"2026-04-09T18:41:04.011Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/recording.har new file mode 100644 index 000000000000..f29ec1fa888c --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-response_3489103309/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with apm_metrics data source and span_kind returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "9c5b26f69dbc190e6b2ff2ec9ea60a4f", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 319, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775756464000,\"queries\":[{\"data_source\":\"apm_metrics\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"query_filter\":\"env:prod\",\"service\":\"web-store\",\"span_kind\":\"server\",\"stat\":\"hits\"}],\"to\":1775760064000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-09T18:41:04.902Z", + "time": 166 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/frozen.json new file mode 100644 index 000000000000..d1b10a783d39 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:31.055Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/recording.har new file mode 100644 index 000000000000..71285ef968d4 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_metrics-data-source-returns-OK-response_88042147/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with apm_metrics data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "39727778207a72b2bcf8cb00d2b605dc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 298, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 561, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658331000,\"queries\":[{\"data_source\":\"apm_metrics\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"query_filter\":\"env:prod\",\"service\":\"web-store\",\"stat\":\"hits\"}],\"to\":1775661931000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:31.060Z", + "time": 178 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/frozen.json new file mode 100644 index 000000000000..db45dab5dcbc --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:31.243Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/recording.har new file mode 100644 index 000000000000..08a48d84f415 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3966739012/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with apm_resource_stats data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b95530cc8297971b309c385c98c13599", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 394, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658331000,\"queries\":[{\"data_source\":\"apm_resource_stats\",\"env\":\"staging\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"*\",\"service\":\"azure-bill-import\",\"stat\":\"hits\"}],\"to\":1775661931000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:31.245Z", + "time": 415 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/frozen.json new file mode 100644 index 000000000000..50759f67f3ac --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:35.324Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/recording.har new file mode 100644 index 000000000000..1a153360ff51 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-audit-data-source-returns-OK-response_1203458350/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with audit data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b88d1d11e7a9b790d7945f67fccc8ae3", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 274, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290795000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"audit\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294395000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 138, + "content": { + "mimeType": "application/vnd.api+json", + "size": 138, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[983.0],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:36.204Z", + "time": 465 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/frozen.json new file mode 100644 index 000000000000..a647e0501973 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:36.679Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/recording.har new file mode 100644 index 000000000000..810907acfb65 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_619845833/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with ci_pipelines data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "13ddd9779f4e857da2b881a1f7107007", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 281, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290796000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294396000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 136, + "content": { + "mimeType": "application/vnd.api+json", + "size": 136, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[9.0],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:36.683Z", + "time": 314 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/frozen.json new file mode 100644 index 000000000000..4b5f6803b5cf --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:37.003Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/recording.har new file mode 100644 index 000000000000..6d4939776354 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-ci_tests-data-source-returns-OK-response_2419723191/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with ci_tests data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "0070818510f35203eca78a357f650160", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 277, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290797000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294397000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:37.006Z", + "time": 309 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/frozen.json new file mode 100644 index 000000000000..a26516705bb8 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:31.666Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/recording.har new file mode 100644 index 000000000000..c26a5bf1e718 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-container-data-source-returns-OK-response_4133843090/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with container data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "d8098ce137fa43a0309cf74d7422cac0", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 315, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 561, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658331000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"container\",\"limit\":10,\"metric\":\"process.stat.container.cpu.system_pct\",\"name\":\"a\",\"sort\":\"desc\",\"tag_filters\":[]}],\"to\":1775661931000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 239, + "content": { + "mimeType": "application/vnd.api+json", + "size": 239, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":[{\"family\":\"percentage\",\"name\":\"percent\",\"plural\":\"percent\",\"scale_factor\":1.0,\"short_name\":\"%\",\"id\":17},null]}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:31.669Z", + "time": 164 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/frozen.json new file mode 100644 index 000000000000..d5a10c7329a9 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:37.321Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/recording.har new file mode 100644 index 000000000000..7ccc91e73696 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-events-data-source-returns-OK-response_3158011884/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with events data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "025e8ae78c72fdaf21057e0f32327b90", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 275, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290797000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"events\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294397000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 138, + "content": { + "mimeType": "application/vnd.api+json", + "size": 138, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[322.0],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:37.323Z", + "time": 378 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/frozen.json new file mode 100644 index 000000000000..2c304c037c5e --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:37.705Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/recording.har new file mode 100644 index 000000000000..bf7a427210ce --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-logs-data-source-returns-OK-response_3898307586/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with logs data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "880816ccc6d62012f34f311cdb585364", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 273, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 561, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290797000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294397000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:37.707Z", + "time": 348 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/frozen.json new file mode 100644 index 000000000000..9b47afaf1d3a --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:38.061Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/recording.har new file mode 100644 index 000000000000..4a40c5c7e0c4 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-network-data-source-returns-OK-response_846224347/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with network data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "f5c29aef4e7534eff8b8f2cb0921267a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 276, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290798000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"network\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294398000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:38.063Z", + "time": 281 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/frozen.json new file mode 100644 index 000000000000..a11143bf9744 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:38.350Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/recording.har new file mode 100644 index 000000000000..2cdad3900584 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-on_call_events-data-source-returns-OK-response_1840633531/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with on_call_events data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "1c89c1d33a5dc854076201159c0c54f8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 283, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290798000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"on_call_events\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294398000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 136, + "content": { + "mimeType": "application/vnd.api+json", + "size": 136, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[5.0],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:38.352Z", + "time": 305 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/frozen.json new file mode 100644 index 000000000000..0ae51cbefd47 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:31.838Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/recording.har new file mode 100644 index 000000000000..a42f05389007 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-process-data-source-returns-OK-response_1148763892/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with process data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b5fabe8820777542f642503ef115dbd6", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 345, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658331000,\"queries\":[{\"aggregator\":\"avg\",\"data_source\":\"process\",\"is_normalized_cpu\":false,\"limit\":10,\"metric\":\"process.stat.cpu.total_pct\",\"name\":\"a\",\"sort\":\"desc\",\"tag_filters\":[],\"text_filter\":\"\"}],\"to\":1775661931000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 239, + "content": { + "mimeType": "application/vnd.api+json", + "size": 239, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":[{\"family\":\"percentage\",\"name\":\"percent\",\"plural\":\"percent\",\"scale_factor\":1.0,\"short_name\":\"%\",\"id\":17},null]}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:31.841Z", + "time": 171 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/frozen.json new file mode 100644 index 000000000000..5ba6073d4978 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:38.663Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/recording.har new file mode 100644 index 000000000000..1db914f874f2 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-product_analytics-data-source-returns-OK-response_3282787281/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with product_analytics data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "74ea29f9edf876dcb9c7f84f5eec1bd4", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 286, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290798000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"product_analytics\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294398000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:38.665Z", + "time": 340 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/frozen.json new file mode 100644 index 000000000000..fd42a25ebfa4 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:39.011Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/recording.har new file mode 100644 index 000000000000..7ee957edc6b8 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-profiles-data-source-returns-OK-response_2804512159/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with profiles data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "fc18cb1c95d50cb42cfaa2549fc78591", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 277, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290799000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"profiles\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294399000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:39.014Z", + "time": 309 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/frozen.json new file mode 100644 index 000000000000..6b4d87ba016b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:39.329Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/recording.har new file mode 100644 index 000000000000..cd377d5c0ffa --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-rum-data-source-returns-OK-response_2266889829/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with rum data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "20ccb29e0ba19d5167287cf6c7edd841", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 272, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290799000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294399000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 138, + "content": { + "mimeType": "application/vnd.api+json", + "size": 138, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[338.0],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:39.331Z", + "time": 466 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/frozen.json new file mode 100644 index 000000000000..1114b591093e --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:39.804Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/recording.har new file mode 100644 index 000000000000..35a58559bba1 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-security_signals-data-source-returns-OK-response_1711091745/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with security_signals data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "8b6d24dfc05b6b341d9fda6ba0692a1c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 285, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290799000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"security_signals\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294399000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 663, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:39.806Z", + "time": 298 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/frozen.json new file mode 100644 index 000000000000..d6958e17ab37 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.018Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/recording.har new file mode 100644 index 000000000000..da84c9ca8b23 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-slo-data-source-returns-OK-response_2401466805/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with slo data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "fcc74edd85f35b43a106604f8ebb1c5a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 325, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"a\",\"slo_id\":\"12345678910\",\"slo_query_type\":\"metric\"}],\"to\":1775661932000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 239, + "content": { + "mimeType": "application/vnd.api+json", + "size": 239, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":[{\"family\":\"percentage\",\"name\":\"percent\",\"plural\":\"percent\",\"scale_factor\":1.0,\"short_name\":\"%\",\"id\":17},null]}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 662, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.020Z", + "time": 116 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/frozen.json b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/frozen.json new file mode 100644 index 000000000000..701c37be7d5a --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:40.111Z" diff --git a/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/recording.har b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/recording.har new file mode 100644 index 000000000000..3bfa98bf94a7 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Scalar-cross-product-query-with-spans-data-source-returns-OK-response_3177956840/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Scalar cross product query with spans data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "8ff4675001de5f9da321d7e98072ac23", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 274, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 562, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290800000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"spans\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294400000},\"type\":\"scalar_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/scalar" + }, + "response": { + "bodySize": 133, + "content": { + "mimeType": "application/vnd.api+json", + "size": 133, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"scalar_response\",\"attributes\":{\"columns\":[{\"name\":\"a\",\"values\":[],\"type\":\"number\",\"meta\":{\"unit\":null}}]}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 663, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:40.113Z", + "time": 337 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/frozen.json new file mode 100644 index 000000000000..ad441c299f69 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.147Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/recording.har new file mode 100644 index 000000000000..0c7c78c83499 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_dependency_stats-data-source-returns-OK-response_410628325/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with apm_dependency_stats data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "9a8d6c689dd7106ecbc57c0aa5097500", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 524, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"interval\":5000,\"queries\":[{\"data_source\":\"apm_dependency_stats\",\"env\":\"ci\",\"name\":\"a\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"edge-eu1.prod.dog\",\"resource_name\":\"DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?\",\"service\":\"cassandra\",\"stat\":\"avg_duration\"}],\"to\":1775661932000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.150Z", + "time": 208 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/frozen.json new file mode 100644 index 000000000000..7b80f64ef66c --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/frozen.json @@ -0,0 +1 @@ +"2026-04-09T18:41:05.084Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/recording.har new file mode 100644 index 000000000000..1a20c80b485f --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-and-span_kind-returns-OK-resp_4151523513/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with apm_metrics data source and span_kind returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "6c87e9f90f6649431f6608d92a25c377", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 339, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775756465000,\"interval\":5000,\"queries\":[{\"data_source\":\"apm_metrics\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"query_filter\":\"env:prod\",\"service\":\"web-store\",\"span_kind\":\"server\",\"stat\":\"hits\"}],\"to\":1775760065000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-09T18:41:05.089Z", + "time": 148 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/frozen.json new file mode 100644 index 000000000000..2d2fb0c9e28b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.363Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/recording.har new file mode 100644 index 000000000000..aa4440a5dbfb --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_metrics-data-source-returns-OK-response_2242043199/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with apm_metrics data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "a272178f7525135da4e09b44b37c8657", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 318, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"interval\":5000,\"queries\":[{\"data_source\":\"apm_metrics\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"query_filter\":\"env:prod\",\"service\":\"web-store\",\"stat\":\"hits\"}],\"to\":1775661932000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.365Z", + "time": 200 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/frozen.json new file mode 100644 index 000000000000..0552424491a4 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.570Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/recording.har new file mode 100644 index 000000000000..8513db2766e2 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-apm_resource_stats-data-source-returns-OK-response_3455584792/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with apm_resource_stats data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "418a1d055a152db9609465988030239b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 414, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"interval\":5000,\"queries\":[{\"data_source\":\"apm_resource_stats\",\"env\":\"staging\",\"group_by\":[\"resource_name\"],\"name\":\"a\",\"operation_name\":\"cassandra.query\",\"primary_tag_name\":\"datacenter\",\"primary_tag_value\":\"*\",\"service\":\"azure-bill-import\",\"stat\":\"hits\"}],\"to\":1775661932000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.572Z", + "time": 138 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/frozen.json new file mode 100644 index 000000000000..1bea5503526f --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:40.465Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/recording.har new file mode 100644 index 000000000000..e05761a9b9e6 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-audit-data-source-returns-OK-response_1989437242/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with audit data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "84aac7a431ba5b27851abc0693732347", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 294, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290800000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"audit\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294400000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 2562, + "content": { + "mimeType": "application/vnd.api+json", + "size": 2562, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1776290800000,1776290835000,1776290860000,1776290895000,1776290915000,1776290920000,1776290945000,1776290955000,1776290980000,1776291020000,1776291040000,1776291080000,1776291100000,1776291140000,1776291160000,1776291200000,1776291220000,1776291245000,1776291260000,1776291280000,1776291320000,1776291325000,1776291330000,1776291335000,1776291340000,1776291345000,1776291385000,1776291400000,1776291415000,1776291445000,1776291460000,1776291505000,1776291520000,1776291535000,1776291540000,1776291565000,1776291580000,1776291630000,1776291640000,1776291690000,1776291700000,1776291750000,1776291760000,1776291810000,1776291820000,1776291870000,1776291880000,1776291890000,1776291935000,1776291940000,1776291995000,1776292000000,1776292010000,1776292015000,1776292020000,1776292055000,1776292060000,1776292115000,1776292120000,1776292175000,1776292180000,1776292195000,1776292200000,1776292205000,1776292240000,1776292300000,1776292360000,1776292390000,1776292420000,1776292460000,1776292480000,1776292540000,1776292545000,1776292565000,1776292600000,1776292605000,1776292660000,1776292665000,1776292720000,1776292725000,1776292765000,1776292780000,1776292785000,1776292840000,1776292850000,1776292900000,1776292910000,1776292960000,1776292970000,1776293005000,1776293020000,1776293030000,1776293080000,1776293090000,1776293140000,1776293155000,1776293200000,1776293215000,1776293260000,1776293265000,1776293275000,1776293320000,1776293335000,1776293355000,1776293380000,1776293395000,1776293440000,1776293460000,1776293500000,1776293520000,1776293545000,1776293550000,1776293555000,1776293560000,1776293580000,1776293620000,1776293640000,1776293680000,1776293700000,1776293740000,1776293760000,1776293765000,1776293770000,1776293785000,1776293790000,1776293800000,1776293825000,1776293860000,1776293865000,1776293885000,1776293920000,1776293945000,1776293955000,1776293980000,1776294005000,1776294040000,1776294070000,1776294100000,1776294130000,1776294160000,1776294190000,1776294220000,1776294240000,1776294245000,1776294250000,1776294280000,1776294285000,1776294310000,1776294340000,1776294375000],\"values\":[[2,2,3,2,13,2,3,2,3,2,1,2,3,2,3,2,1,4,2,3,11,104,140,28,9,2,2,1,3,2,3,2,4,1,1,2,1,2,3,2,1,2,3,2,3,2,3,3,2,1,2,3,7,14,10,2,1,2,3,2,3,8,14,9,3,5,3,8,5,9,3,3,2,4,1,2,3,2,3,2,1,1,2,3,2,1,2,3,2,1,1,2,54,2,1,2,3,2,6,2,2,1,2,4,3,2,1,2,3,2,5,15,7,3,2,1,2,3,2,2,14,29,2,19,9,2,2,2,1,2,3,2,55,1,2,3,2,1,2,3,2,3,3,3,2,38,73,2,3,1]]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 668, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:40.468Z", + "time": 312 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/frozen.json new file mode 100644 index 000000000000..bb76b1b75129 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:40.785Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/recording.har new file mode 100644 index 000000000000..0ff051fbc57f --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_pipelines-data-source-returns-OK-response_618963805/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with ci_pipelines data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "462a586d1fbb2dbc8ac640ea1eed6b91", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 301, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290800000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_pipelines\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294400000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 240, + "content": { + "mimeType": "application/vnd.api+json", + "size": 240, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1776291235000,1776291290000,1776291295000,1776291370000,1776291380000,1776291385000],\"values\":[[1,1,3,1,1,2]]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 667, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:40.788Z", + "time": 392 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/frozen.json new file mode 100644 index 000000000000..3a91533173cc --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:41.185Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/recording.har new file mode 100644 index 000000000000..42a8215a5ee8 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-ci_tests-data-source-returns-OK-response_1909507155/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with ci_tests data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "a099b29c26afada64c41b39adbb22563", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 297, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290801000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"ci_tests\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294401000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:41.187Z", + "time": 315 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/frozen.json new file mode 100644 index 000000000000..3ecb4fe0cdda --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.715Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/recording.har new file mode 100644 index 000000000000..494b453a2b14 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-container-data-source-returns-OK-response_3051251422/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with container data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "8e86418819eb8f46a54060133cd9a878", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 316, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"interval\":5000,\"queries\":[{\"data_source\":\"container\",\"limit\":10,\"metric\":\"process.stat.container.cpu.system_pct\",\"name\":\"a\",\"sort\":\"desc\",\"tag_filters\":[]}],\"to\":1775661932000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.718Z", + "time": 187 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/frozen.json new file mode 100644 index 000000000000..67c7650a55a9 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:41.507Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/recording.har new file mode 100644 index 000000000000..fb3be0c99b39 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-events-data-source-returns-OK-response_3902683472/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with events data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "8d1f6a17c16b1aea5f1460c4906515c2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 295, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290801000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"events\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294401000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 1299, + "content": { + "mimeType": "application/vnd.api+json", + "size": 1299, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1776290845000,1776290905000,1776290910000,1776290970000,1776291035000,1776291100000,1776291160000,1776291165000,1776291225000,1776291290000,1776291355000,1776291415000,1776291420000,1776291480000,1776291545000,1776291605000,1776291610000,1776291670000,1776291735000,1776291800000,1776291870000,1776291940000,1776292005000,1776292065000,1776292070000,1776292130000,1776292195000,1776292255000,1776292260000,1776292285000,1776292320000,1776292345000,1776292385000,1776292450000,1776292460000,1776292465000,1776292510000,1776292525000,1776292575000,1776292640000,1776292700000,1776292705000,1776292765000,1776292830000,1776292895000,1776292965000,1776293035000,1776293100000,1776293165000,1776293230000,1776293300000,1776293365000,1776293370000,1776293430000,1776293495000,1776293560000,1776293630000,1776293710000,1776293760000,1776293765000,1776293780000,1776293845000,1776293910000,1776293970000,1776293975000,1776294040000,1776294110000,1776294175000,1776294235000,1776294240000,1776294285000,1776294305000],\"values\":[[4,2,2,4,4,4,2,2,4,4,4,2,2,4,4,2,2,4,4,4,4,4,4,2,2,4,4,2,2,1,4,1,4,4,2,1,4,1,4,4,2,2,4,4,4,4,4,4,4,4,4,2,2,4,4,4,4,4,15,75,4,4,4,2,2,4,4,4,2,2,12,2]]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 667, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:41.509Z", + "time": 357 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/frozen.json new file mode 100644 index 000000000000..7d35a37de4c4 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:41.871Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/recording.har new file mode 100644 index 000000000000..b330c8c3052b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-logs-data-source-returns-OK-response_1937179526/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with logs data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "c433fce3bec977ce189ed0d7c3d524ff", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 293, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290801000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"logs\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294401000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:41.873Z", + "time": 605 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/frozen.json new file mode 100644 index 000000000000..db784badac3b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:42.484Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/recording.har new file mode 100644 index 000000000000..b5ba451ae96b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-network-data-source-returns-OK-response_3719766887/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with network data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "44b22e421d41e38f4eafa9ce3454f2e1", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 296, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290802000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"network\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294402000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:42.486Z", + "time": 278 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/frozen.json new file mode 100644 index 000000000000..8c52818c5d3b --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:42.769Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/recording.har new file mode 100644 index 000000000000..da7a60212991 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-on_call_events-data-source-returns-OK-response_2667262207/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with on_call_events data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "28293b728a62fd3c3b77a5c3dfb8237a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 303, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290802000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"on_call_events\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294402000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 176, + "content": { + "mimeType": "application/vnd.api+json", + "size": 176, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1776294280000,1776294285000],\"values\":[[2,3]]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 666, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:42.771Z", + "time": 304 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/frozen.json new file mode 100644 index 000000000000..e9ac334a8914 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:32.912Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/recording.har new file mode 100644 index 000000000000..aaa2ce7beeaa --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-process-data-source-returns-OK-response_3666776376/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with process data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "a58d654ec36cd34bc4fc2730a933a4ef", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 346, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 568, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658332000,\"interval\":5000,\"queries\":[{\"data_source\":\"process\",\"is_normalized_cpu\":false,\"limit\":10,\"metric\":\"process.stat.cpu.total_pct\",\"name\":\"a\",\"sort\":\"desc\",\"tag_filters\":[],\"text_filter\":\"\"}],\"to\":1775661932000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:32.915Z", + "time": 203 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/frozen.json new file mode 100644 index 000000000000..bdb7d03e7376 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:43.081Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/recording.har new file mode 100644 index 000000000000..aaea65c48748 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-product_analytics-data-source-returns-OK-response_340760245/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with product_analytics data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "39646338fb17146f8eb0e83f95eb8463", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 306, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 569, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290803000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"product_analytics\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294403000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:43.083Z", + "time": 298 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/frozen.json new file mode 100644 index 000000000000..873aa811aee1 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:43.385Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/recording.har new file mode 100644 index 000000000000..66ddf6847ee1 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-profiles-data-source-returns-OK-response_1033448731/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with profiles data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b9c8f7cf80dac8a0a041d00ff8ecf2c0", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 297, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290803000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"profiles\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294403000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:43.387Z", + "time": 320 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/frozen.json new file mode 100644 index 000000000000..4db9c8ce4ec7 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:43.715Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/recording.har new file mode 100644 index 000000000000..66bc25a6b162 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-rum-data-source-returns-OK-response_2838592249/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with rum data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "6260e695f8779962119fac17292e4689", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 292, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290803000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"rum\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294403000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 364, + "content": { + "mimeType": "application/vnd.api+json", + "size": 364, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[{\"group_tags\":[],\"query_index\":0,\"unit\":null}],\"times\":[1776290870000,1776291170000,1776291175000,1776291470000,1776291770000,1776292070000,1776292370000,1776292670000,1776292970000,1776293270000,1776293570000,1776293870000,1776294170000],\"values\":[[28,30,2,28,30,27,26,26,27,30,28,26,30]]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 666, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:43.717Z", + "time": 305 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/frozen.json new file mode 100644 index 000000000000..d4551289126e --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:44.027Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/recording.har new file mode 100644 index 000000000000..73f45c4e5fe7 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-security_signals-data-source-returns-OK-response_3522135061/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with security_signals data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "1315def6372c7b88ef7dde6a44ea63af", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 305, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290804000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"security_signals\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294404000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:44.029Z", + "time": 289 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/frozen.json new file mode 100644 index 000000000000..49a2c14f5e57 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/frozen.json @@ -0,0 +1 @@ +"2026-04-08T15:25:33.123Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/recording.har new file mode 100644 index 000000000000..d5417796bf84 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-slo-data-source-returns-OK-response_2541293737/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with slo data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "38b1dc77d3ec87e1be529ab937e5a85c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 345, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 570, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1775658333000,\"interval\":5000,\"queries\":[{\"additional_query_filters\":\"*\",\"data_source\":\"slo\",\"group_mode\":\"overall\",\"measure\":\"slo_status\",\"name\":\"a\",\"slo_id\":\"12345678910\",\"slo_query_type\":\"metric\"}],\"to\":1775661933000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-08T15:25:33.129Z", + "time": 144 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/frozen.json b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/frozen.json new file mode 100644 index 000000000000..fdde3dfe7c3c --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/frozen.json @@ -0,0 +1 @@ +"2026-04-15T23:06:44.323Z" diff --git a/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/recording.har b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/recording.har new file mode 100644 index 000000000000..d7b8d784db81 --- /dev/null +++ b/cassettes/v2/Metrics_2046978582/Timeseries-cross-product-query-with-spans-data-source-returns-OK-response_1132781428/recording.har @@ -0,0 +1,67 @@ +{ + "log": { + "_recordingName": "Metrics/Timeseries cross product query with spans data source returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "06c9574e31834ff31b3552bb70f2bb68", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 294, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 569, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"formulas\":[{\"formula\":\"a\",\"limit\":{\"count\":10,\"order\":\"desc\"}}],\"from\":1776290804000,\"interval\":5000,\"queries\":[{\"compute\":{\"aggregation\":\"count\"},\"data_source\":\"spans\",\"indexes\":[\"*\"],\"name\":\"a\",\"search\":{\"query\":\"*\"}}],\"to\":1776294404000},\"type\":\"timeseries_request\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/query/timeseries" + }, + "response": { + "bodySize": 99, + "content": { + "mimeType": "application/vnd.api+json", + "size": 99, + "text": "{\"data\":{\"id\":\"0\",\"type\":\"timeseries_response\",\"attributes\":{\"series\":[],\"times\":[],\"values\":[]}}}\n" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 665, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2026-04-15T23:06:44.327Z", + "time": 387 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/features/v2/metrics.feature b/features/v2/metrics.feature index 41e753dfb3f1..114814e21e20 100644 --- a/features/v2/metrics.feature +++ b/features/v2/metrics.feature @@ -344,6 +344,177 @@ Feature: Metrics And the response "data.type" is equal to "scalar_response" And the response "data.attributes.columns[0].name" is equal to "a" + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with apm_dependency_stats data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "apm_dependency_stats", "name": "a", "env": "ci", "service": "cassandra", "stat": "avg_duration", "operation_name": "cassandra.query", "resource_name": "DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?", "primary_tag_name": "datacenter", "primary_tag_value": "edge-eu1.prod.dog"}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with apm_metrics data source and span_kind returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "apm_metrics", "name": "a", "stat": "hits", "service": "web-store", "query_filter": "env:prod", "span_kind": "server", "group_by": ["resource_name"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with apm_metrics data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "apm_metrics", "name": "a", "stat": "hits", "service": "web-store", "query_filter": "env:prod", "group_by": ["resource_name"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with apm_resource_stats data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "apm_resource_stats", "name": "a", "env": "staging", "service": "azure-bill-import", "stat": "hits", "operation_name": "cassandra.query", "group_by": ["resource_name"], "primary_tag_name": "datacenter", "primary_tag_value": "*"}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with audit data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "audit", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with ci_pipelines data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "ci_pipelines", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with ci_tests data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "ci_tests", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with container data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "container", "name": "a", "metric": "process.stat.container.cpu.system_pct", "aggregator": "avg", "tag_filters": [], "limit": 10, "sort": "desc"}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with events data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "events", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with logs data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "logs", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with network data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "network", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with on_call_events data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "on_call_events", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with process data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "process", "name": "a", "metric": "process.stat.cpu.total_pct", "aggregator": "avg", "text_filter": "", "tag_filters": [], "limit": 10, "sort": "desc", "is_normalized_cpu": false}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with product_analytics data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "product_analytics", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with profiles data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "profiles", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with rum data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "rum", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with security_signals data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "security_signals", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with slo data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "slo", "name": "a", "slo_id": "12345678910", "measure": "slo_status", "slo_query_type": "metric", "group_mode": "overall", "additional_query_filters": "*"}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Scalar cross product query with spans data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryScalarData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "queries": [{"data_source": "spans", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "scalar_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "scalar_response" + @generated @skip @team:DataDog/metrics-intake Scenario: Submit metrics returns "Bad Request" response Given new "SubmitMetrics" request @@ -415,6 +586,177 @@ Feature: Metrics Then the response status is 200 OK And the response "data.type" is equal to "timeseries_response" + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with apm_dependency_stats data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "apm_dependency_stats", "name": "a", "env": "ci", "service": "cassandra", "stat": "avg_duration", "operation_name": "cassandra.query", "resource_name": "DELETE FROM monitor_history.monitor_state_change_history WHERE org_id = ? AND monitor_id IN ? AND group = ?", "primary_tag_name": "datacenter", "primary_tag_value": "edge-eu1.prod.dog"}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with apm_metrics data source and span_kind returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "apm_metrics", "name": "a", "stat": "hits", "service": "web-store", "query_filter": "env:prod", "span_kind": "server", "group_by": ["resource_name"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with apm_metrics data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "apm_metrics", "name": "a", "stat": "hits", "service": "web-store", "query_filter": "env:prod", "group_by": ["resource_name"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with apm_resource_stats data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "apm_resource_stats", "name": "a", "env": "staging", "service": "azure-bill-import", "stat": "hits", "operation_name": "cassandra.query", "group_by": ["resource_name"], "primary_tag_name": "datacenter", "primary_tag_value": "*"}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with audit data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "audit", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with ci_pipelines data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "ci_pipelines", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with ci_tests data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "ci_tests", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with container data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "container", "name": "a", "metric": "process.stat.container.cpu.system_pct", "tag_filters": [], "limit": 10, "sort": "desc"}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with events data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "events", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with logs data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "logs", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with network data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "network", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with on_call_events data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "on_call_events", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with process data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "process", "name": "a", "metric": "process.stat.cpu.total_pct", "text_filter": "", "tag_filters": [], "limit": 10, "sort": "desc", "is_normalized_cpu": false}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with product_analytics data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "product_analytics", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with profiles data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "profiles", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with rum data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "rum", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with security_signals data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "security_signals", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with slo data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "slo", "name": "a", "slo_id": "12345678910", "measure": "slo_status", "slo_query_type": "metric", "group_mode": "overall", "additional_query_filters": "*"}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + + @skip-validation @team:Datadog/timeseries-query + Scenario: Timeseries cross product query with spans data source returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "QueryTimeseriesData" request + And body with value {"data": {"attributes": {"formulas": [{"formula": "a", "limit": {"count": 10, "order": "desc"}}], "from": {{ timestamp('now - 1h') }}000, "interval": 5000, "queries": [{"data_source": "spans", "name": "a", "compute": {"aggregation": "count"}, "search": {"query": "*"}, "indexes": ["*"]}], "to": {{ timestamp('now') }}000}, "type": "timeseries_request"}} + When the request is sent + Then the response status is 200 OK + And the response "data.type" is equal to "timeseries_response" + @generated @skip @team:DataDog/metrics-experience Scenario: Update a tag configuration returns "Bad Request" response Given a valid "appKeyAuth" key in the system diff --git a/services/metrics/src/v2/index.ts b/services/metrics/src/v2/index.ts index 3edb7748a6a2..1380b2d803d3 100644 --- a/services/metrics/src/v2/index.ts +++ b/services/metrics/src/v2/index.ts @@ -19,6 +19,19 @@ export { } from "./MetricsApi"; export { APIErrorResponse } from "./models/APIErrorResponse"; +export { ApmDependencyStatName } from "./models/ApmDependencyStatName"; +export { ApmDependencyStatsDataSource } from "./models/ApmDependencyStatsDataSource"; +export { ApmDependencyStatsQuery } from "./models/ApmDependencyStatsQuery"; +export { ApmMetricsDataSource } from "./models/ApmMetricsDataSource"; +export { ApmMetricsQuery } from "./models/ApmMetricsQuery"; +export { ApmMetricsSpanKind } from "./models/ApmMetricsSpanKind"; +export { ApmMetricsStat } from "./models/ApmMetricsStat"; +export { ApmResourceStatName } from "./models/ApmResourceStatName"; +export { ApmResourceStatsDataSource } from "./models/ApmResourceStatsDataSource"; +export { ApmResourceStatsQuery } from "./models/ApmResourceStatsQuery"; +export { ContainerDataSource } from "./models/ContainerDataSource"; +export { ContainerScalarQuery } from "./models/ContainerScalarQuery"; +export { ContainerTimeseriesQuery } from "./models/ContainerTimeseriesQuery"; export { DataScalarColumn } from "./models/DataScalarColumn"; export { EventsAggregation } from "./models/EventsAggregation"; export { EventsCompute } from "./models/EventsCompute"; @@ -126,6 +139,9 @@ export { MetricTagConfigurationUpdateRequest } from "./models/MetricTagConfigura export { MetricType } from "./models/MetricType"; export { MetricVolumes } from "./models/MetricVolumes"; export { MetricVolumesResponse } from "./models/MetricVolumesResponse"; +export { ProcessDataSource } from "./models/ProcessDataSource"; +export { ProcessScalarQuery } from "./models/ProcessScalarQuery"; +export { ProcessTimeseriesQuery } from "./models/ProcessTimeseriesQuery"; export { QueryFormula } from "./models/QueryFormula"; export { QuerySortOrder } from "./models/QuerySortOrder"; export { ScalarColumn } from "./models/ScalarColumn"; @@ -141,6 +157,11 @@ export { ScalarFormulaResponseType } from "./models/ScalarFormulaResponseType"; export { ScalarMeta } from "./models/ScalarMeta"; export { ScalarQuery } from "./models/ScalarQuery"; export { ScalarResponse } from "./models/ScalarResponse"; +export { SloDataSource } from "./models/SloDataSource"; +export { SloQuery } from "./models/SloQuery"; +export { SlosGroupMode } from "./models/SlosGroupMode"; +export { SlosMeasure } from "./models/SlosMeasure"; +export { SlosQueryType } from "./models/SlosQueryType"; export { TimeseriesFormulaQueryRequest } from "./models/TimeseriesFormulaQueryRequest"; export { TimeseriesFormulaQueryResponse } from "./models/TimeseriesFormulaQueryResponse"; export { TimeseriesFormulaRequest } from "./models/TimeseriesFormulaRequest"; diff --git a/services/metrics/src/v2/models/ApmDependencyStatName.ts b/services/metrics/src/v2/models/ApmDependencyStatName.ts new file mode 100644 index 000000000000..46aaff511759 --- /dev/null +++ b/services/metrics/src/v2/models/ApmDependencyStatName.ts @@ -0,0 +1,21 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * The APM dependency statistic to query. + */ +export type ApmDependencyStatName = + | typeof AVG_DURATION + | typeof AVG_ROOT_DURATION + | typeof AVG_SPANS_PER_TRACE + | typeof ERROR_RATE + | typeof PCT_EXEC_TIME + | typeof PCT_OF_TRACES + | typeof TOTAL_TRACES_COUNT + | UnparsedObject; +export const AVG_DURATION = "avg_duration"; +export const AVG_ROOT_DURATION = "avg_root_duration"; +export const AVG_SPANS_PER_TRACE = "avg_spans_per_trace"; +export const ERROR_RATE = "error_rate"; +export const PCT_EXEC_TIME = "pct_exec_time"; +export const PCT_OF_TRACES = "pct_of_traces"; +export const TOTAL_TRACES_COUNT = "total_traces_count"; diff --git a/services/metrics/src/v2/models/ApmDependencyStatsDataSource.ts b/services/metrics/src/v2/models/ApmDependencyStatsDataSource.ts new file mode 100644 index 000000000000..71d4b622940b --- /dev/null +++ b/services/metrics/src/v2/models/ApmDependencyStatsDataSource.ts @@ -0,0 +1,9 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for APM dependency statistics queries. + */ +export type ApmDependencyStatsDataSource = + | typeof APM_DEPENDENCY_STATS + | UnparsedObject; +export const APM_DEPENDENCY_STATS = "apm_dependency_stats"; diff --git a/services/metrics/src/v2/models/ApmDependencyStatsQuery.ts b/services/metrics/src/v2/models/ApmDependencyStatsQuery.ts new file mode 100644 index 000000000000..f89a5594dfa3 --- /dev/null +++ b/services/metrics/src/v2/models/ApmDependencyStatsQuery.ts @@ -0,0 +1,126 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ApmDependencyStatName } from "./ApmDependencyStatName"; +import { ApmDependencyStatsDataSource } from "./ApmDependencyStatsDataSource"; + +/** + * A query for APM dependency statistics between services, such as call latency and error rates. + */ +export class ApmDependencyStatsQuery { + /** + * A data source for APM dependency statistics queries. + */ + "dataSource": ApmDependencyStatsDataSource; + /** + * The environment to query. + */ + "env": string; + /** + * Determines whether stats for upstream or downstream dependencies should be queried. + */ + "isUpstream"?: boolean; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * The APM operation name. + */ + "operationName": string; + /** + * The name of the second primary tag used within APM; required when `primary_tag_value` is specified. See https://docs.datadoghq.com/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog. + */ + "primaryTagName"?: string; + /** + * Filter APM data by the second primary tag. `primary_tag_name` must also be specified. + */ + "primaryTagValue"?: string; + /** + * The resource name to filter by. + */ + "resourceName": string; + /** + * The service name to filter by. + */ + "service": string; + /** + * The APM dependency statistic to query. + */ + "stat": ApmDependencyStatName; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSource: { + baseName: "data_source", + type: "ApmDependencyStatsDataSource", + required: true, + }, + env: { + baseName: "env", + type: "string", + required: true, + }, + isUpstream: { + baseName: "is_upstream", + type: "boolean", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + operationName: { + baseName: "operation_name", + type: "string", + required: true, + }, + primaryTagName: { + baseName: "primary_tag_name", + type: "string", + }, + primaryTagValue: { + baseName: "primary_tag_value", + type: "string", + }, + resourceName: { + baseName: "resource_name", + type: "string", + required: true, + }, + service: { + baseName: "service", + type: "string", + required: true, + }, + stat: { + baseName: "stat", + type: "ApmDependencyStatName", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ApmDependencyStatsQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ApmMetricsDataSource.ts b/services/metrics/src/v2/models/ApmMetricsDataSource.ts new file mode 100644 index 000000000000..1c78ed670e68 --- /dev/null +++ b/services/metrics/src/v2/models/ApmMetricsDataSource.ts @@ -0,0 +1,7 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for APM metrics queries. + */ +export type ApmMetricsDataSource = typeof APM_METRICS | UnparsedObject; +export const APM_METRICS = "apm_metrics"; diff --git a/services/metrics/src/v2/models/ApmMetricsQuery.ts b/services/metrics/src/v2/models/ApmMetricsQuery.ts new file mode 100644 index 000000000000..50db036fb302 --- /dev/null +++ b/services/metrics/src/v2/models/ApmMetricsQuery.ts @@ -0,0 +1,139 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ApmMetricsDataSource } from "./ApmMetricsDataSource"; +import { ApmMetricsSpanKind } from "./ApmMetricsSpanKind"; +import { ApmMetricsStat } from "./ApmMetricsStat"; + +/** + * A query for APM trace metrics such as hits, errors, and latency percentiles, aggregated across services. + */ +export class ApmMetricsQuery { + /** + * A data source for APM metrics queries. + */ + "dataSource": ApmMetricsDataSource; + /** + * Optional fields to group the query results by. + */ + "groupBy"?: Array; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * Optional operation mode to aggregate across operation names. + */ + "operationMode"?: string; + /** + * Name of operation on service. If not provided, the primary operation name is used. + */ + "operationName"?: string; + /** + * Tags to query for a specific downstream entity (peer.service, peer.db_instance, peer.s3, peer.s3.bucket, etc.). + */ + "peerTags"?: Array; + /** + * Additional filters for the query using metrics query syntax (for example, env, primary_tag). + */ + "queryFilter"?: string; + /** + * The resource hash for exact matching. + */ + "resourceHash"?: string; + /** + * The full name of a specific resource to filter by. + */ + "resourceName"?: string; + /** + * The service name to filter by. + */ + "service"?: string; + /** + * Describes the relationship between the span, its parents, and its children in a trace. + */ + "spanKind"?: ApmMetricsSpanKind; + /** + * The APM metric statistic to query. + */ + "stat": ApmMetricsStat; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSource: { + baseName: "data_source", + type: "ApmMetricsDataSource", + required: true, + }, + groupBy: { + baseName: "group_by", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + operationMode: { + baseName: "operation_mode", + type: "string", + }, + operationName: { + baseName: "operation_name", + type: "string", + }, + peerTags: { + baseName: "peer_tags", + type: "Array", + }, + queryFilter: { + baseName: "query_filter", + type: "string", + }, + resourceHash: { + baseName: "resource_hash", + type: "string", + }, + resourceName: { + baseName: "resource_name", + type: "string", + }, + service: { + baseName: "service", + type: "string", + }, + spanKind: { + baseName: "span_kind", + type: "ApmMetricsSpanKind", + }, + stat: { + baseName: "stat", + type: "ApmMetricsStat", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ApmMetricsQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ApmMetricsSpanKind.ts b/services/metrics/src/v2/models/ApmMetricsSpanKind.ts new file mode 100644 index 000000000000..d390dac77a83 --- /dev/null +++ b/services/metrics/src/v2/models/ApmMetricsSpanKind.ts @@ -0,0 +1,17 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * Describes the relationship between the span, its parents, and its children in a trace. + */ +export type ApmMetricsSpanKind = + | typeof CONSUMER + | typeof SERVER + | typeof CLIENT + | typeof PRODUCER + | typeof INTERNAL + | UnparsedObject; +export const CONSUMER = "consumer"; +export const SERVER = "server"; +export const CLIENT = "client"; +export const PRODUCER = "producer"; +export const INTERNAL = "internal"; diff --git a/services/metrics/src/v2/models/ApmMetricsStat.ts b/services/metrics/src/v2/models/ApmMetricsStat.ts new file mode 100644 index 000000000000..dc7cc1ddad97 --- /dev/null +++ b/services/metrics/src/v2/models/ApmMetricsStat.ts @@ -0,0 +1,39 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * The APM metric statistic to query. + */ +export type ApmMetricsStat = + | typeof ERROR_RATE + | typeof ERRORS + | typeof ERRORS_PER_SECOND + | typeof HITS + | typeof HITS_PER_SECOND + | typeof APDEX + | typeof LATENCY_AVG + | typeof LATENCY_MAX + | typeof LATENCY_P50 + | typeof LATENCY_P75 + | typeof LATENCY_P90 + | typeof LATENCY_P95 + | typeof LATENCY_P99 + | typeof LATENCY_P999 + | typeof LATENCY_DISTRIBUTION + | typeof TOTAL_TIME + | UnparsedObject; +export const ERROR_RATE = "error_rate"; +export const ERRORS = "errors"; +export const ERRORS_PER_SECOND = "errors_per_second"; +export const HITS = "hits"; +export const HITS_PER_SECOND = "hits_per_second"; +export const APDEX = "apdex"; +export const LATENCY_AVG = "latency_avg"; +export const LATENCY_MAX = "latency_max"; +export const LATENCY_P50 = "latency_p50"; +export const LATENCY_P75 = "latency_p75"; +export const LATENCY_P90 = "latency_p90"; +export const LATENCY_P95 = "latency_p95"; +export const LATENCY_P99 = "latency_p99"; +export const LATENCY_P999 = "latency_p999"; +export const LATENCY_DISTRIBUTION = "latency_distribution"; +export const TOTAL_TIME = "total_time"; diff --git a/services/metrics/src/v2/models/ApmResourceStatName.ts b/services/metrics/src/v2/models/ApmResourceStatName.ts new file mode 100644 index 000000000000..212d56939280 --- /dev/null +++ b/services/metrics/src/v2/models/ApmResourceStatName.ts @@ -0,0 +1,31 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * The APM resource statistic to query. + */ +export type ApmResourceStatName = + | typeof ERROR_RATE + | typeof ERRORS + | typeof HITS + | typeof LATENCY_AVG + | typeof LATENCY_MAX + | typeof LATENCY_P50 + | typeof LATENCY_P75 + | typeof LATENCY_P90 + | typeof LATENCY_P95 + | typeof LATENCY_P99 + | typeof LATENCY_DISTRIBUTION + | typeof TOTAL_TIME + | UnparsedObject; +export const ERROR_RATE = "error_rate"; +export const ERRORS = "errors"; +export const HITS = "hits"; +export const LATENCY_AVG = "latency_avg"; +export const LATENCY_MAX = "latency_max"; +export const LATENCY_P50 = "latency_p50"; +export const LATENCY_P75 = "latency_p75"; +export const LATENCY_P90 = "latency_p90"; +export const LATENCY_P95 = "latency_p95"; +export const LATENCY_P99 = "latency_p99"; +export const LATENCY_DISTRIBUTION = "latency_distribution"; +export const TOTAL_TIME = "total_time"; diff --git a/services/metrics/src/v2/models/ApmResourceStatsDataSource.ts b/services/metrics/src/v2/models/ApmResourceStatsDataSource.ts new file mode 100644 index 000000000000..edc11cf90102 --- /dev/null +++ b/services/metrics/src/v2/models/ApmResourceStatsDataSource.ts @@ -0,0 +1,9 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for APM resource statistics queries. + */ +export type ApmResourceStatsDataSource = + | typeof APM_RESOURCE_STATS + | UnparsedObject; +export const APM_RESOURCE_STATS = "apm_resource_stats"; diff --git a/services/metrics/src/v2/models/ApmResourceStatsQuery.ts b/services/metrics/src/v2/models/ApmResourceStatsQuery.ts new file mode 100644 index 000000000000..586776d78207 --- /dev/null +++ b/services/metrics/src/v2/models/ApmResourceStatsQuery.ts @@ -0,0 +1,124 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ApmResourceStatName } from "./ApmResourceStatName"; +import { ApmResourceStatsDataSource } from "./ApmResourceStatsDataSource"; + +/** + * A query for APM resource statistics such as latency, error rate, and hit count, grouped by resource name. + */ +export class ApmResourceStatsQuery { + /** + * A data source for APM resource statistics queries. + */ + "dataSource": ApmResourceStatsDataSource; + /** + * The environment to query. + */ + "env": string; + /** + * Tag keys to group results by. + */ + "groupBy"?: Array; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * The APM operation name. + */ + "operationName"?: string; + /** + * Name of the second primary tag used within APM. Required when `primary_tag_value` is specified. See https://docs.datadoghq.com/tracing/guide/setting_primary_tags_to_scope/#add-a-second-primary-tag-in-datadog + */ + "primaryTagName"?: string; + /** + * Value of the second primary tag by which to filter APM data. `primary_tag_name` must also be specified. + */ + "primaryTagValue"?: string; + /** + * The resource name to filter by. + */ + "resourceName"?: string; + /** + * The service name to filter by. + */ + "service": string; + /** + * The APM resource statistic to query. + */ + "stat": ApmResourceStatName; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSource: { + baseName: "data_source", + type: "ApmResourceStatsDataSource", + required: true, + }, + env: { + baseName: "env", + type: "string", + required: true, + }, + groupBy: { + baseName: "group_by", + type: "Array", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + operationName: { + baseName: "operation_name", + type: "string", + }, + primaryTagName: { + baseName: "primary_tag_name", + type: "string", + }, + primaryTagValue: { + baseName: "primary_tag_value", + type: "string", + }, + resourceName: { + baseName: "resource_name", + type: "string", + }, + service: { + baseName: "service", + type: "string", + required: true, + }, + stat: { + baseName: "stat", + type: "ApmResourceStatName", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ApmResourceStatsQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ContainerDataSource.ts b/services/metrics/src/v2/models/ContainerDataSource.ts new file mode 100644 index 000000000000..3c956b6f235c --- /dev/null +++ b/services/metrics/src/v2/models/ContainerDataSource.ts @@ -0,0 +1,7 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for container-level infrastructure metrics. + */ +export type ContainerDataSource = typeof CONTAINER | UnparsedObject; +export const CONTAINER = "container"; diff --git a/services/metrics/src/v2/models/ContainerScalarQuery.ts b/services/metrics/src/v2/models/ContainerScalarQuery.ts new file mode 100644 index 000000000000..35c8dde6857b --- /dev/null +++ b/services/metrics/src/v2/models/ContainerScalarQuery.ts @@ -0,0 +1,116 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ContainerDataSource } from "./ContainerDataSource"; +import { MetricsAggregator } from "./MetricsAggregator"; +import { QuerySortOrder } from "./QuerySortOrder"; + +/** + * A query for container-level metrics such as CPU and memory usage. + */ +export class ContainerScalarQuery { + /** + * The type of aggregation that can be performed on metrics-based queries. + */ + "aggregator"?: MetricsAggregator; + /** + * A data source for container-level infrastructure metrics. + */ + "dataSource": ContainerDataSource; + /** + * Whether CPU metrics should be normalized by core count. + */ + "isNormalizedCpu"?: boolean; + /** + * Maximum number of results to return. + */ + "limit"?: number; + /** + * The container metric to query. + */ + "metric": string; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * Direction of sort. + */ + "sort"?: QuerySortOrder; + /** + * Tag filters to narrow down containers. + */ + "tagFilters"?: Array; + /** + * A full-text search filter to match container names. + */ + "textFilter"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + aggregator: { + baseName: "aggregator", + type: "MetricsAggregator", + }, + dataSource: { + baseName: "data_source", + type: "ContainerDataSource", + required: true, + }, + isNormalizedCpu: { + baseName: "is_normalized_cpu", + type: "boolean", + }, + limit: { + baseName: "limit", + type: "number", + format: "int64", + }, + metric: { + baseName: "metric", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + sort: { + baseName: "sort", + type: "QuerySortOrder", + }, + tagFilters: { + baseName: "tag_filters", + type: "Array", + }, + textFilter: { + baseName: "text_filter", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ContainerScalarQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ContainerTimeseriesQuery.ts b/services/metrics/src/v2/models/ContainerTimeseriesQuery.ts new file mode 100644 index 000000000000..188ff5edd596 --- /dev/null +++ b/services/metrics/src/v2/models/ContainerTimeseriesQuery.ts @@ -0,0 +1,107 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ContainerDataSource } from "./ContainerDataSource"; +import { QuerySortOrder } from "./QuerySortOrder"; + +/** + * A query for container-level metrics such as CPU and memory usage. + */ +export class ContainerTimeseriesQuery { + /** + * A data source for container-level infrastructure metrics. + */ + "dataSource": ContainerDataSource; + /** + * Whether CPU metrics should be normalized by core count. + */ + "isNormalizedCpu"?: boolean; + /** + * Maximum number of results to return. + */ + "limit"?: number; + /** + * The container metric to query. + */ + "metric": string; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * Direction of sort. + */ + "sort"?: QuerySortOrder; + /** + * Tag filters to narrow down containers. + */ + "tagFilters"?: Array; + /** + * A full-text search filter to match container names. + */ + "textFilter"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSource: { + baseName: "data_source", + type: "ContainerDataSource", + required: true, + }, + isNormalizedCpu: { + baseName: "is_normalized_cpu", + type: "boolean", + }, + limit: { + baseName: "limit", + type: "number", + format: "int64", + }, + metric: { + baseName: "metric", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + sort: { + baseName: "sort", + type: "QuerySortOrder", + }, + tagFilters: { + baseName: "tag_filters", + type: "Array", + }, + textFilter: { + baseName: "text_filter", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ContainerTimeseriesQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/EventsDataSource.ts b/services/metrics/src/v2/models/EventsDataSource.ts index b90baa1d9c0a..40436350333c 100644 --- a/services/metrics/src/v2/models/EventsDataSource.ts +++ b/services/metrics/src/v2/models/EventsDataSource.ts @@ -5,9 +5,31 @@ import { UnparsedObject } from "@datadog/datadog-api-client"; */ export type EventsDataSource = | typeof LOGS + | typeof SPANS + | typeof NETWORK | typeof RUM + | typeof SECURITY_SIGNALS + | typeof PROFILES + | typeof AUDIT + | typeof EVENTS + | typeof CI_TESTS + | typeof CI_PIPELINES + | typeof INCIDENT_ANALYTICS + | typeof PRODUCT_ANALYTICS + | typeof ON_CALL_EVENTS | typeof DORA | UnparsedObject; export const LOGS = "logs"; +export const SPANS = "spans"; +export const NETWORK = "network"; export const RUM = "rum"; +export const SECURITY_SIGNALS = "security_signals"; +export const PROFILES = "profiles"; +export const AUDIT = "audit"; +export const EVENTS = "events"; +export const CI_TESTS = "ci_tests"; +export const CI_PIPELINES = "ci_pipelines"; +export const INCIDENT_ANALYTICS = "incident_analytics"; +export const PRODUCT_ANALYTICS = "product_analytics"; +export const ON_CALL_EVENTS = "on_call_events"; export const DORA = "dora"; diff --git a/services/metrics/src/v2/models/EventsScalarQuery.ts b/services/metrics/src/v2/models/EventsScalarQuery.ts index 41c9bf6ff303..e49c1b731fc6 100644 --- a/services/metrics/src/v2/models/EventsScalarQuery.ts +++ b/services/metrics/src/v2/models/EventsScalarQuery.ts @@ -6,7 +6,7 @@ import { EventsGroupBy } from "./EventsGroupBy"; import { EventsSearch } from "./EventsSearch"; /** - * An individual scalar events query. + * An individual scalar query for logs, RUM, traces, CI pipelines, security signals, and other event-based data sources. Use this query type for any data source powered by the Events Platform. See the data_source field for the full list of supported sources. */ export class EventsScalarQuery { /** diff --git a/services/metrics/src/v2/models/EventsTimeseriesQuery.ts b/services/metrics/src/v2/models/EventsTimeseriesQuery.ts index f7d1fc07807c..e4685f43fa25 100644 --- a/services/metrics/src/v2/models/EventsTimeseriesQuery.ts +++ b/services/metrics/src/v2/models/EventsTimeseriesQuery.ts @@ -6,7 +6,7 @@ import { EventsGroupBy } from "./EventsGroupBy"; import { EventsSearch } from "./EventsSearch"; /** - * An individual timeseries events query. + * An individual timeseries query for logs, RUM, traces, CI pipelines, security signals, and other event-based data sources. Use this query type for any data source powered by the Events Platform. See the data_source field for the full list of supported sources. */ export class EventsTimeseriesQuery { /** diff --git a/services/metrics/src/v2/models/MetricsScalarQuery.ts b/services/metrics/src/v2/models/MetricsScalarQuery.ts index df2d8a68013f..2e6d912ffbad 100644 --- a/services/metrics/src/v2/models/MetricsScalarQuery.ts +++ b/services/metrics/src/v2/models/MetricsScalarQuery.ts @@ -4,7 +4,7 @@ import { MetricsAggregator } from "./MetricsAggregator"; import { MetricsDataSource } from "./MetricsDataSource"; /** - * An individual scalar metrics query. + * A query against Datadog custom metrics or Cloud Cost data sources. */ export class MetricsScalarQuery { /** diff --git a/services/metrics/src/v2/models/MetricsTimeseriesQuery.ts b/services/metrics/src/v2/models/MetricsTimeseriesQuery.ts index cea0665fef51..f8f4cfaf8daa 100644 --- a/services/metrics/src/v2/models/MetricsTimeseriesQuery.ts +++ b/services/metrics/src/v2/models/MetricsTimeseriesQuery.ts @@ -3,7 +3,7 @@ import { AttributeTypeMap } from "@datadog/datadog-api-client"; import { MetricsDataSource } from "./MetricsDataSource"; /** - * An individual timeseries metrics query. + * A query against Datadog custom metrics or Cloud Cost data sources. */ export class MetricsTimeseriesQuery { /** diff --git a/services/metrics/src/v2/models/ProcessDataSource.ts b/services/metrics/src/v2/models/ProcessDataSource.ts new file mode 100644 index 000000000000..0d3b28115958 --- /dev/null +++ b/services/metrics/src/v2/models/ProcessDataSource.ts @@ -0,0 +1,7 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for process-level infrastructure metrics. + */ +export type ProcessDataSource = typeof PROCESS | UnparsedObject; +export const PROCESS = "process"; diff --git a/services/metrics/src/v2/models/ProcessScalarQuery.ts b/services/metrics/src/v2/models/ProcessScalarQuery.ts new file mode 100644 index 000000000000..169796cd742d --- /dev/null +++ b/services/metrics/src/v2/models/ProcessScalarQuery.ts @@ -0,0 +1,116 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { MetricsAggregator } from "./MetricsAggregator"; +import { ProcessDataSource } from "./ProcessDataSource"; +import { QuerySortOrder } from "./QuerySortOrder"; + +/** + * A query for host-level process metrics such as CPU and memory usage. + */ +export class ProcessScalarQuery { + /** + * The type of aggregation that can be performed on metrics-based queries. + */ + "aggregator"?: MetricsAggregator; + /** + * A data source for process-level infrastructure metrics. + */ + "dataSource": ProcessDataSource; + /** + * Whether CPU metrics should be normalized by core count. + */ + "isNormalizedCpu"?: boolean; + /** + * Maximum number of results to return. + */ + "limit"?: number; + /** + * The process metric to query. + */ + "metric": string; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * Direction of sort. + */ + "sort"?: QuerySortOrder; + /** + * Tag filters to narrow down processes. + */ + "tagFilters"?: Array; + /** + * A full-text search filter to match process names or commands. + */ + "textFilter"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + aggregator: { + baseName: "aggregator", + type: "MetricsAggregator", + }, + dataSource: { + baseName: "data_source", + type: "ProcessDataSource", + required: true, + }, + isNormalizedCpu: { + baseName: "is_normalized_cpu", + type: "boolean", + }, + limit: { + baseName: "limit", + type: "number", + format: "int64", + }, + metric: { + baseName: "metric", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + sort: { + baseName: "sort", + type: "QuerySortOrder", + }, + tagFilters: { + baseName: "tag_filters", + type: "Array", + }, + textFilter: { + baseName: "text_filter", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ProcessScalarQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ProcessTimeseriesQuery.ts b/services/metrics/src/v2/models/ProcessTimeseriesQuery.ts new file mode 100644 index 000000000000..bbed298c2466 --- /dev/null +++ b/services/metrics/src/v2/models/ProcessTimeseriesQuery.ts @@ -0,0 +1,107 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { ProcessDataSource } from "./ProcessDataSource"; +import { QuerySortOrder } from "./QuerySortOrder"; + +/** + * A query for host-level process metrics such as CPU and memory usage. + */ +export class ProcessTimeseriesQuery { + /** + * A data source for process-level infrastructure metrics. + */ + "dataSource": ProcessDataSource; + /** + * Whether CPU metrics should be normalized by core count. + */ + "isNormalizedCpu"?: boolean; + /** + * Maximum number of results to return. + */ + "limit"?: number; + /** + * The process metric to query. + */ + "metric": string; + /** + * The variable name for use in formulas. + */ + "name": string; + /** + * Direction of sort. + */ + "sort"?: QuerySortOrder; + /** + * Tag filters to narrow down processes. + */ + "tagFilters"?: Array; + /** + * A full-text search filter to match process names or commands. + */ + "textFilter"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + dataSource: { + baseName: "data_source", + type: "ProcessDataSource", + required: true, + }, + isNormalizedCpu: { + baseName: "is_normalized_cpu", + type: "boolean", + }, + limit: { + baseName: "limit", + type: "number", + format: "int64", + }, + metric: { + baseName: "metric", + type: "string", + required: true, + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + sort: { + baseName: "sort", + type: "QuerySortOrder", + }, + tagFilters: { + baseName: "tag_filters", + type: "Array", + }, + textFilter: { + baseName: "text_filter", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return ProcessTimeseriesQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/ScalarQuery.ts b/services/metrics/src/v2/models/ScalarQuery.ts index 788fdb502e75..2fd29d848c98 100644 --- a/services/metrics/src/v2/models/ScalarQuery.ts +++ b/services/metrics/src/v2/models/ScalarQuery.ts @@ -1,7 +1,13 @@ import { UnparsedObject } from "@datadog/datadog-api-client"; +import { ApmDependencyStatsQuery } from "./ApmDependencyStatsQuery"; +import { ApmMetricsQuery } from "./ApmMetricsQuery"; +import { ApmResourceStatsQuery } from "./ApmResourceStatsQuery"; +import { ContainerScalarQuery } from "./ContainerScalarQuery"; import { EventsScalarQuery } from "./EventsScalarQuery"; import { MetricsScalarQuery } from "./MetricsScalarQuery"; +import { ProcessScalarQuery } from "./ProcessScalarQuery"; +import { SloQuery } from "./SloQuery"; /** * An individual scalar query to one of the basic Datadog data sources. @@ -9,4 +15,10 @@ import { MetricsScalarQuery } from "./MetricsScalarQuery"; export type ScalarQuery = | MetricsScalarQuery | EventsScalarQuery + | ApmResourceStatsQuery + | ApmMetricsQuery + | ApmDependencyStatsQuery + | SloQuery + | ProcessScalarQuery + | ContainerScalarQuery | UnparsedObject; diff --git a/services/metrics/src/v2/models/SloDataSource.ts b/services/metrics/src/v2/models/SloDataSource.ts new file mode 100644 index 000000000000..b8b9bb7ecaf3 --- /dev/null +++ b/services/metrics/src/v2/models/SloDataSource.ts @@ -0,0 +1,7 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * A data source for SLO queries. + */ +export type SloDataSource = typeof SLO | UnparsedObject; +export const SLO = "slo"; diff --git a/services/metrics/src/v2/models/SloQuery.ts b/services/metrics/src/v2/models/SloQuery.ts new file mode 100644 index 000000000000..7769ff7be6d5 --- /dev/null +++ b/services/metrics/src/v2/models/SloQuery.ts @@ -0,0 +1,100 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { SloDataSource } from "./SloDataSource"; +import { SlosGroupMode } from "./SlosGroupMode"; +import { SlosMeasure } from "./SlosMeasure"; +import { SlosQueryType } from "./SlosQueryType"; + +/** + * A query for SLO status, error budget, and burn rate metrics. + */ +export class SloQuery { + /** + * Additional filters applied to the SLO query. + */ + "additionalQueryFilters"?: string; + /** + * A data source for SLO queries. + */ + "dataSource": SloDataSource; + /** + * How SLO results are grouped in the response. + */ + "groupMode"?: SlosGroupMode; + /** + * The SLO measurement to retrieve. + */ + "measure": SlosMeasure; + /** + * The variable name for use in formulas. + */ + "name"?: string; + /** + * The unique identifier of the SLO to query. + */ + "sloId": string; + /** + * The type of SLO definition being queried. + */ + "sloQueryType"?: SlosQueryType; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + additionalQueryFilters: { + baseName: "additional_query_filters", + type: "string", + }, + dataSource: { + baseName: "data_source", + type: "SloDataSource", + required: true, + }, + groupMode: { + baseName: "group_mode", + type: "SlosGroupMode", + }, + measure: { + baseName: "measure", + type: "SlosMeasure", + required: true, + }, + name: { + baseName: "name", + type: "string", + }, + sloId: { + baseName: "slo_id", + type: "string", + required: true, + }, + sloQueryType: { + baseName: "slo_query_type", + type: "SlosQueryType", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SloQuery.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/metrics/src/v2/models/SlosGroupMode.ts b/services/metrics/src/v2/models/SlosGroupMode.ts new file mode 100644 index 000000000000..539642f724a3 --- /dev/null +++ b/services/metrics/src/v2/models/SlosGroupMode.ts @@ -0,0 +1,8 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * How SLO results are grouped in the response. + */ +export type SlosGroupMode = typeof OVERALL | typeof COMPONENTS | UnparsedObject; +export const OVERALL = "overall"; +export const COMPONENTS = "components"; diff --git a/services/metrics/src/v2/models/SlosMeasure.ts b/services/metrics/src/v2/models/SlosMeasure.ts new file mode 100644 index 000000000000..692efad183d8 --- /dev/null +++ b/services/metrics/src/v2/models/SlosMeasure.ts @@ -0,0 +1,27 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * The SLO measurement to retrieve. + */ +export type SlosMeasure = + | typeof GOOD_EVENTS + | typeof BAD_EVENTS + | typeof SLO_STATUS + | typeof ERROR_BUDGET_REMAINING + | typeof ERROR_BUDGET_REMAINING_HISTORY + | typeof ERROR_BUDGET_BURNDOWN + | typeof BURN_RATE + | typeof SLO_STATUS_HISTORY + | typeof GOOD_MINUTES + | typeof BAD_MINUTES + | UnparsedObject; +export const GOOD_EVENTS = "good_events"; +export const BAD_EVENTS = "bad_events"; +export const SLO_STATUS = "slo_status"; +export const ERROR_BUDGET_REMAINING = "error_budget_remaining"; +export const ERROR_BUDGET_REMAINING_HISTORY = "error_budget_remaining_history"; +export const ERROR_BUDGET_BURNDOWN = "error_budget_burndown"; +export const BURN_RATE = "burn_rate"; +export const SLO_STATUS_HISTORY = "slo_status_history"; +export const GOOD_MINUTES = "good_minutes"; +export const BAD_MINUTES = "bad_minutes"; diff --git a/services/metrics/src/v2/models/SlosQueryType.ts b/services/metrics/src/v2/models/SlosQueryType.ts new file mode 100644 index 000000000000..e3336fea45bf --- /dev/null +++ b/services/metrics/src/v2/models/SlosQueryType.ts @@ -0,0 +1,13 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * The type of SLO definition being queried. + */ +export type SlosQueryType = + | typeof METRIC + | typeof TIME_SLICE + | typeof MONITOR + | UnparsedObject; +export const METRIC = "metric"; +export const TIME_SLICE = "time_slice"; +export const MONITOR = "monitor"; diff --git a/services/metrics/src/v2/models/TimeseriesQuery.ts b/services/metrics/src/v2/models/TimeseriesQuery.ts index 6d7b19552001..7a5c6343e34c 100644 --- a/services/metrics/src/v2/models/TimeseriesQuery.ts +++ b/services/metrics/src/v2/models/TimeseriesQuery.ts @@ -1,7 +1,13 @@ import { UnparsedObject } from "@datadog/datadog-api-client"; +import { ApmDependencyStatsQuery } from "./ApmDependencyStatsQuery"; +import { ApmMetricsQuery } from "./ApmMetricsQuery"; +import { ApmResourceStatsQuery } from "./ApmResourceStatsQuery"; +import { ContainerTimeseriesQuery } from "./ContainerTimeseriesQuery"; import { EventsTimeseriesQuery } from "./EventsTimeseriesQuery"; import { MetricsTimeseriesQuery } from "./MetricsTimeseriesQuery"; +import { ProcessTimeseriesQuery } from "./ProcessTimeseriesQuery"; +import { SloQuery } from "./SloQuery"; /** * An individual timeseries query to one of the basic Datadog data sources. @@ -9,4 +15,10 @@ import { MetricsTimeseriesQuery } from "./MetricsTimeseriesQuery"; export type TimeseriesQuery = | MetricsTimeseriesQuery | EventsTimeseriesQuery + | ApmResourceStatsQuery + | ApmMetricsQuery + | ApmDependencyStatsQuery + | SloQuery + | ProcessTimeseriesQuery + | ContainerTimeseriesQuery | UnparsedObject; diff --git a/services/metrics/src/v2/models/TypingInfo.ts b/services/metrics/src/v2/models/TypingInfo.ts index a0f7319ca642..61ec136c484b 100644 --- a/services/metrics/src/v2/models/TypingInfo.ts +++ b/services/metrics/src/v2/models/TypingInfo.ts @@ -1,6 +1,11 @@ import { ModelTypingInfo } from "@datadog/datadog-api-client"; import { APIErrorResponse } from "./APIErrorResponse"; +import { ApmDependencyStatsQuery } from "./ApmDependencyStatsQuery"; +import { ApmMetricsQuery } from "./ApmMetricsQuery"; +import { ApmResourceStatsQuery } from "./ApmResourceStatsQuery"; +import { ContainerScalarQuery } from "./ContainerScalarQuery"; +import { ContainerTimeseriesQuery } from "./ContainerTimeseriesQuery"; import { DataScalarColumn } from "./DataScalarColumn"; import { EventsCompute } from "./EventsCompute"; import { EventsGroupBy } from "./EventsGroupBy"; @@ -81,6 +86,8 @@ import { MetricsAndMetricTagConfigurationsResponse } from "./MetricsAndMetricTag import { MetricsListResponseLinks } from "./MetricsListResponseLinks"; import { MetricsScalarQuery } from "./MetricsScalarQuery"; import { MetricsTimeseriesQuery } from "./MetricsTimeseriesQuery"; +import { ProcessScalarQuery } from "./ProcessScalarQuery"; +import { ProcessTimeseriesQuery } from "./ProcessTimeseriesQuery"; import { QueryFormula } from "./QueryFormula"; import { ScalarFormulaQueryRequest } from "./ScalarFormulaQueryRequest"; import { ScalarFormulaQueryResponse } from "./ScalarFormulaQueryResponse"; @@ -89,6 +96,7 @@ import { ScalarFormulaRequestAttributes } from "./ScalarFormulaRequestAttributes import { ScalarFormulaResponseAtrributes } from "./ScalarFormulaResponseAtrributes"; import { ScalarMeta } from "./ScalarMeta"; import { ScalarResponse } from "./ScalarResponse"; +import { SloQuery } from "./SloQuery"; import { TimeseriesFormulaQueryRequest } from "./TimeseriesFormulaQueryRequest"; import { TimeseriesFormulaQueryResponse } from "./TimeseriesFormulaQueryResponse"; import { TimeseriesFormulaRequest } from "./TimeseriesFormulaRequest"; @@ -100,6 +108,58 @@ import { Unit } from "./Unit"; export const TypingInfo: ModelTypingInfo = { enumsMap: { + ApmDependencyStatName: [ + "avg_duration", + "avg_root_duration", + "avg_spans_per_trace", + "error_rate", + "pct_exec_time", + "pct_of_traces", + "total_traces_count", + ], + ApmDependencyStatsDataSource: ["apm_dependency_stats"], + ApmMetricsDataSource: ["apm_metrics"], + ApmMetricsSpanKind: [ + "consumer", + "server", + "client", + "producer", + "internal", + ], + ApmMetricsStat: [ + "error_rate", + "errors", + "errors_per_second", + "hits", + "hits_per_second", + "apdex", + "latency_avg", + "latency_max", + "latency_p50", + "latency_p75", + "latency_p90", + "latency_p95", + "latency_p99", + "latency_p999", + "latency_distribution", + "total_time", + ], + ApmResourceStatName: [ + "error_rate", + "errors", + "hits", + "latency_avg", + "latency_max", + "latency_p50", + "latency_p75", + "latency_p90", + "latency_p95", + "latency_p99", + "latency_distribution", + "total_time", + ], + ApmResourceStatsDataSource: ["apm_resource_stats"], + ContainerDataSource: ["container"], EventsAggregation: [ "count", "cardinality", @@ -113,7 +173,22 @@ export const TypingInfo: ModelTypingInfo = { "max", "avg", ], - EventsDataSource: ["logs", "rum", "dora"], + EventsDataSource: [ + "logs", + "spans", + "network", + "rum", + "security_signals", + "profiles", + "audit", + "events", + "ci_tests", + "ci_pipelines", + "incident_analytics", + "product_analytics", + "on_call_events", + "dora", + ], EventsSortType: ["alphabetical", "measure"], MetricActiveConfigurationType: ["actively_queried_configurations"], MetricBulkConfigureTagsType: ["metric_bulk_configure_tags"], @@ -154,11 +229,27 @@ export const TypingInfo: ModelTypingInfo = { "area", ], MetricsDataSource: ["metrics", "cloud_cost"], + ProcessDataSource: ["process"], QuerySortOrder: ["asc", "desc"], ScalarColumnTypeGroup: ["group"], ScalarColumnTypeNumber: ["number"], ScalarFormulaRequestType: ["scalar_request"], ScalarFormulaResponseType: ["scalar_response"], + SloDataSource: ["slo"], + SlosGroupMode: ["overall", "components"], + SlosMeasure: [ + "good_events", + "bad_events", + "slo_status", + "error_budget_remaining", + "error_budget_remaining_history", + "error_budget_burndown", + "burn_rate", + "slo_status_history", + "good_minutes", + "bad_minutes", + ], + SlosQueryType: ["metric", "time_slice", "monitor"], TimeseriesFormulaRequestType: ["timeseries_request"], TimeseriesFormulaResponseType: ["timeseries_response"], }, @@ -172,11 +263,34 @@ export const TypingInfo: ModelTypingInfo = { MetricVolumes: ["MetricDistinctVolume", "MetricIngestedIndexedVolume"], MetricsAndMetricTagConfigurations: ["Metric", "MetricTagConfiguration"], ScalarColumn: ["GroupScalarColumn", "DataScalarColumn"], - ScalarQuery: ["MetricsScalarQuery", "EventsScalarQuery"], - TimeseriesQuery: ["MetricsTimeseriesQuery", "EventsTimeseriesQuery"], + ScalarQuery: [ + "MetricsScalarQuery", + "EventsScalarQuery", + "ApmResourceStatsQuery", + "ApmMetricsQuery", + "ApmDependencyStatsQuery", + "SloQuery", + "ProcessScalarQuery", + "ContainerScalarQuery", + ], + TimeseriesQuery: [ + "MetricsTimeseriesQuery", + "EventsTimeseriesQuery", + "ApmResourceStatsQuery", + "ApmMetricsQuery", + "ApmDependencyStatsQuery", + "SloQuery", + "ProcessTimeseriesQuery", + "ContainerTimeseriesQuery", + ], }, typeMap: { APIErrorResponse: APIErrorResponse, + ApmDependencyStatsQuery: ApmDependencyStatsQuery, + ApmMetricsQuery: ApmMetricsQuery, + ApmResourceStatsQuery: ApmResourceStatsQuery, + ContainerScalarQuery: ContainerScalarQuery, + ContainerTimeseriesQuery: ContainerTimeseriesQuery, DataScalarColumn: DataScalarColumn, EventsCompute: EventsCompute, EventsGroupBy: EventsGroupBy, @@ -262,6 +376,8 @@ export const TypingInfo: ModelTypingInfo = { MetricsListResponseLinks: MetricsListResponseLinks, MetricsScalarQuery: MetricsScalarQuery, MetricsTimeseriesQuery: MetricsTimeseriesQuery, + ProcessScalarQuery: ProcessScalarQuery, + ProcessTimeseriesQuery: ProcessTimeseriesQuery, QueryFormula: QueryFormula, ScalarFormulaQueryRequest: ScalarFormulaQueryRequest, ScalarFormulaQueryResponse: ScalarFormulaQueryResponse, @@ -270,6 +386,7 @@ export const TypingInfo: ModelTypingInfo = { ScalarFormulaResponseAtrributes: ScalarFormulaResponseAtrributes, ScalarMeta: ScalarMeta, ScalarResponse: ScalarResponse, + SloQuery: SloQuery, TimeseriesFormulaQueryRequest: TimeseriesFormulaQueryRequest, TimeseriesFormulaQueryResponse: TimeseriesFormulaQueryResponse, TimeseriesFormulaRequest: TimeseriesFormulaRequest,