Results returned in the same order as the submitted requests. This API version returns exactly one result.
\n
\n
\n
\n
\n
\n
anomalies [required]
\n
\n
[object]
\n
Detected anomalies. This API version returns at most one anomaly.
\n
\n
\n
\n
\n
\n
anomaly_detection [required]
\n
\n
object
\n
Anomaly detection configuration used for the result.
\n
\n
\n
\n
\n
\n
configuration_source [required]
\n
\n
enum
\n
Source of the anomaly detection configuration. \nAllowed enum values: request_formula,watchdog_explains_default
\n
\n \n
\n
\n
\n
\n
\n
profile [required]
\n
\n
string
\n
Applied Watchdog Explains profile, or null when the request supplied an explicit anomalies() formula. The current Watchdog profile is watchdog_explains_v1.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
detected_interval [required]
\n
\n
object
\n
Half-open time interval in milliseconds since the Unix epoch.
\n
\n
\n
\n
\n
\n
end [required]
\n
\n
int64
\n
Exclusive end of the interval.
\n
\n \n
\n
\n
\n
\n
\n
start [required]
\n
\n
int64
\n
Inclusive start of the interval.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
display_interval [required]
\n
\n
object
\n
Half-open time interval in milliseconds since the Unix epoch.
\n
\n
\n
\n
\n
\n
end [required]
\n
\n
int64
\n
Exclusive end of the interval.
\n
\n \n
\n
\n
\n
\n
\n
start [required]
\n
\n
int64
\n
Inclusive start of the interval.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
findings [required]
\n
\n
[ <oneOf>]
\n
Deterministic explanations for the anomaly, ordered by importance.
\n
\n
\n
\n
\n
\n
<type=influential_tag>
\n
\n
object
\n
Finding that attributes an anomaly to an influential tag.
\n
\n
\n
\n
\n
\n
description [required]
\n
\n
string
\n
Deterministic explanation of the finding.
\n
\n \n
\n
\n
\n
\n
\n
headline [required]
\n
\n
string
\n
Concise, deterministic finding title.
\n
\n \n
\n
\n
\n
\n
\n
tag [required]
\n
\n
object
\n
Structured tag evidence for an influential-tag finding.
\n
\n
\n
\n
\n
\n
influence_type [required]
\n
\n
enum
\n
Kind of influence a tag has on a series. \nAllowed enum values: shape,value
\n
\n \n
\n
\n
\n
\n
\n
key [required]
\n
\n
string
\n
Influential tag key.
\n
\n \n
\n
\n
\n
\n
\n
rating [required]
\n
\n
double
\n
Influence rating from 1 through 5.
\n
\n \n
\n
\n
\n
\n
\n
synonyms [required]
\n
\n
[object]
\n
Tags grouped with this tag by Variation of Influence synonym analysis.
\n
\n
\n
\n
\n
\n
key [required]
\n
\n
string
\n
Synonymous tag key.
\n
\n \n
\n
\n
\n
\n
\n
values [required]
\n
\n
[string]
\n
Values associated with the synonymous tag.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
values [required]
\n
\n
[string]
\n
Influential values for the tag key.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
Finding category for an influential tag. \nAllowed enum values: influential_tag
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
<type=anomaly>
\n
\n
object
\n
Finding that describes the anomaly when completed analysis produces no displayable influential tags.
\n
\n
\n
\n
\n
\n
description [required]
\n
\n
string
\n
Deterministic explanation of the finding.
\n
\n \n
\n
\n
\n
\n
\n
headline [required]
\n
\n
string
\n
Concise, deterministic finding title.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
Finding category for an anomaly without a displayable influential tag. \nAllowed enum values: anomaly
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
maximum_deviation [required]
\n
\n
object
\n
Most anomalous point within the detected interval.
\n
\n
\n
\n
\n
\n
delta_from_boundary [required]
\n
\n
double
\n
Absolute distance between the observed value and the nearest anomaly boundary.
\n
\n \n
\n
\n
\n
\n
\n
timestamp [required]
\n
\n
int64
\n
Point timestamp in milliseconds since the Unix epoch.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
double
\n
Observed value at the point.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
series [required]
\n
\n
object
\n
Logical series on which the anomaly was detected.
\n
\n
\n
\n
\n
\n
group_tags [required]
\n
\n
[string]
\n
Tags identifying the selected group. Empty for a query without grouping.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
Display label for the selected series.
\n
\n \n
\n
\n
\n
\n
\n
query_index [required]
\n
\n
int64
\n
Zero-based index of the caller's formula that produced the series.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
tag_analysis [required]
\n
\n
object
\n
Summary of optional influential-tag enrichment. Count and key fields are present only when analysis completes; enrichment availability does not affect completion of the investigation result.
\n
\n
\n
\n
\n
\n
analyzed_tag_keys
\n
\n
[string]
\n
Tag keys analyzed. Present only when analysis completes.
\n
\n \n
\n
\n
\n
\n
\n
status [required]
\n
\n
enum
\n
Outcome of optional influential-tag enrichment. \nAllowed enum values: complete,unsupported,failed
\n
\n \n
\n
\n
\n
\n
\n
tag_keys_analyzed
\n
\n
int64
\n
Number of tag keys analyzed. Present only when analysis completes.
\n
\n \n
\n
\n
\n
\n
\n
tag_values_analyzed
\n
\n
int64
\n
Number of tag values analyzed. Present only when analysis completes.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
Direction of an anomaly relative to its expected range. \nAllowed enum values: spike,dip
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
status [required]
\n
\n
enum
\n
Status value indicating successful completion. \nAllowed enum values: complete
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
enum
\n
Stable identifier for an anomaly investigation response resource. \nAllowed enum values: 0
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
Resource type for a timeseries anomaly investigation. \nAllowed enum values: timeseries_anomaly_investigation
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
meta [required]
\n
\n
object
\n
Timeseries execution metadata for the single request accepted by this API version.
\n
\n
\n
\n
\n
\n
from_date [required]
\n
\n
int64
\n
Effective start of the timeseries query in milliseconds since the Unix epoch.
\n
\n \n
\n
\n
\n
\n
\n
interval [required]
\n
\n
int64
\n
Effective timeseries interval in milliseconds.
\n
\n \n
\n
\n
\n
\n
\n
queries [required]
\n
\n
[object]
\n
Execution status for the request's queries.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Query name from the request.
\n
\n \n
\n
\n
\n
\n
\n
status [required]
\n
\n
enum
\n
Current execution status for a named query. \nAllowed enum values: running,done
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
res_type [required]
\n
\n
enum
\n
Response metadata type for a timeseries anomaly investigation. \nAllowed enum values: timeseries_anomaly_investigation
\n
\n \n
\n
\n
\n
\n
\n
results_warnings [required]
\n
\n
[object]
\n
Non-fatal warnings produced while executing the investigation.
\n
\n
\n
\n
\n
\n
message [required]
\n
\n
string
\n
Human-readable warning message.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Machine-readable warning name.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
to_date [required]
\n
\n
int64
\n
Effective end of the timeseries query in milliseconds since the Unix epoch.
JSON:API resource containing an anomaly investigation request.
\n
\n
\n
\n
\n
\n
attributes [required]
\n
\n
object
\n
Attributes of an anomaly investigation request.
\n
\n
\n
\n
\n
\n
requests [required]
\n
\n
[object]
\n
Timeseries requests to investigate. This API version accepts exactly one request.
\n
\n
\n
\n
\n
\n
formulas [required]
\n
\n
[object]
\n
Formulas to evaluate. Each formula may contain an explicit anomalies() call or a supported metrics expression.
\n
\n
\n
\n
\n
\n
formula [required]
\n
\n
string
\n
Formula expression referencing one or more named queries.
\n
\n \n
\n
\n
\n
\n
\n
limit
\n
\n
object
\n
Optional formula limit accepted for compatibility with Timeseries API requests. Formula limits have no effect on timeseries queries.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
Requested result limit. This field has no effect on a timeseries anomaly investigation.
\n
\n \n
\n
\n
\n
\n
\n
order
\n
\n
enum
\n
Sort order used when applying a formula series limit. \nAllowed enum values: asc,desc
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
from [required]
\n
\n
int64
\n
Start of the investigation time window in milliseconds since the Unix epoch.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
int64
\n
Optional requested aggregation interval in milliseconds.
\n
\n \n
\n
\n
\n
\n
\n
queries [required]
\n
\n
[object]
\n
Metrics queries referenced by the formulas.
\n
\n
\n
\n
\n
\n
aggregator
\n
\n
string
\n
Optional scalar aggregator accepted for request compatibility. This field is ignored for timeseries queries.
\n
\n \n
\n
\n
\n
\n
\n
cross_org_uuids
\n
\n
[string]
\n
Optional organization UUID used for a cross-organization query. Each query accepts at most one UUID; use separate queries for separate organizations. Influential-tag analysis is currently unsupported for cross-organization queries, but anomaly detection still runs.
\n
\n \n
\n
\n
\n
\n
\n
data_source [required]
\n
\n
enum
\n
Data source for an anomaly investigation query. \nAllowed enum values: metrics
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name used to reference this query from formulas.
\n
\n \n
\n
\n
\n
\n
\n
query [required]
\n
\n
string
\n
Datadog metrics query expression.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
to [required]
\n
\n
int64
\n
End of the investigation time window in milliseconds since the Unix epoch. Must be later than from.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
Resource type for a timeseries anomaly investigation. \nAllowed enum values: timeseries_anomaly_investigation
\n
\n \n
\n
\n
\n
"
+ }
+ }
+}
\ No newline at end of file
diff --git a/hugo/data/api/v2/full_spec.yaml b/hugo/data/api/v2/full_spec.yaml
index 86871edd333..be71b796185 100644
--- a/hugo/data/api/v2/full_spec.yaml
+++ b/hugo/data/api/v2/full_spec.yaml
@@ -120987,6 +120987,644 @@ components:
$ref: '#/components/schemas/TimelineCellResource'
type: array
type: object
+ TimeseriesAnomalyInvestigationAnomaly:
+ description: Most significant anomaly detected in the request.
+ properties:
+ anomaly_detection:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationDetection'
+ detected_interval:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationInterval'
+ display_interval:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationInterval'
+ findings:
+ description: Deterministic explanations for the anomaly, ordered by importance.
+ example: []
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFinding'
+ maxItems: 3
+ type: array
+ maximum_deviation:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationMaximumDeviation'
+ series:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationSeries'
+ tag_analysis:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysis'
+ type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationAnomalyType'
+ required:
+ - series
+ - anomaly_detection
+ - detected_interval
+ - display_interval
+ - type
+ - maximum_deviation
+ - tag_analysis
+ - findings
+ type: object
+ TimeseriesAnomalyInvestigationAnomalyFinding:
+ description: Finding that describes the anomaly when completed analysis produces no displayable influential tags.
+ properties:
+ description:
+ description: Deterministic explanation of the finding.
+ example: "The service:api series rose outside its expected range."
+ type: string
+ headline:
+ description: Concise, deterministic finding title.
+ example: "An anomaly was detected on service:api"
+ type: string
+ type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFindingType'
+ required:
+ - type
+ - headline
+ - description
+ type: object
+ TimeseriesAnomalyInvestigationAnomalyFindingType:
+ description: Finding category for an anomaly without a displayable influential tag.
+ enum:
+ - anomaly
+ example: anomaly
+ type: string
+ x-enum-varnames:
+ - ANOMALY
+ TimeseriesAnomalyInvestigationAnomalyType:
+ description: Direction of an anomaly relative to its expected range.
+ enum:
+ - spike
+ - dip
+ example: spike
+ type: string
+ x-enum-varnames:
+ - SPIKE
+ - DIP
+ TimeseriesAnomalyInvestigationCompleteStatus:
+ description: Status value indicating successful completion.
+ enum:
+ - complete
+ example: complete
+ type: string
+ x-enum-varnames:
+ - COMPLETE
+ TimeseriesAnomalyInvestigationConfigurationSource:
+ description: Source of the anomaly detection configuration.
+ enum:
+ - request_formula
+ - watchdog_explains_default
+ example: request_formula
+ type: string
+ x-enum-varnames:
+ - REQUEST_FORMULA
+ - WATCHDOG_EXPLAINS_DEFAULT
+ TimeseriesAnomalyInvestigationDataSource:
+ description: Data source for an anomaly investigation query.
+ enum:
+ - metrics
+ example: metrics
+ type: string
+ x-enum-varnames:
+ - METRICS
+ TimeseriesAnomalyInvestigationDetection:
+ description: Anomaly detection configuration used for the result.
+ properties:
+ configuration_source:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationConfigurationSource'
+ profile:
+ description: Applied Watchdog Explains profile, or null when the request supplied an explicit `anomalies()` formula. The current Watchdog profile is `watchdog_explains_v1`.
+ example:
+ nullable: true
+ type: string
+ required:
+ - configuration_source
+ - profile
+ type: object
+ TimeseriesAnomalyInvestigationFinding:
+ description: Deterministic explanation for a detected anomaly.
+ oneOf:
+ - $ref: '#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFinding'
+ - $ref: '#/components/schemas/TimeseriesAnomalyInvestigationAnomalyFinding'
+ TimeseriesAnomalyInvestigationFindingSynonym:
+ description: Tag grouped under an influential tag by synonym analysis.
+ properties:
+ key:
+ description: Synonymous tag key.
+ example: app
+ type: string
+ values:
+ description: Values associated with the synonymous tag.
+ example:
+ - api
+ items:
+ description: Synonymous tag value.
+ example: api
+ type: string
+ type: array
+ required:
+ - key
+ - values
+ type: object
+ TimeseriesAnomalyInvestigationFindingTag:
+ description: Structured tag evidence for an influential-tag finding.
+ properties:
+ influence_type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationInfluenceType'
+ key:
+ description: Influential tag key.
+ example: service
+ type: string
+ rating:
+ description: Influence rating from 1 through 5.
+ example: 5.0
+ format: double
+ maximum: 5
+ minimum: 1
+ type: number
+ synonyms:
+ description: Tags grouped with this tag by Variation of Influence synonym analysis.
+ example: []
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFindingSynonym'
+ type: array
+ values:
+ description: Influential values for the tag key.
+ example:
+ - api
+ items:
+ description: Influential tag value.
+ example: api
+ type: string
+ type: array
+ required:
+ - key
+ - values
+ - influence_type
+ - rating
+ - synonyms
+ type: object
+ TimeseriesAnomalyInvestigationFormula:
+ description: Formula evaluated by the timeseries request.
+ properties:
+ formula:
+ description: Formula expression referencing one or more named queries.
+ example: "anomalies(query1, 'agile', 3)"
+ minLength: 1
+ type: string
+ limit:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimit'
+ required:
+ - formula
+ type: object
+ TimeseriesAnomalyInvestigationFormulaLimit:
+ description: Optional formula limit accepted for compatibility with Timeseries API requests. Formula limits have no effect on timeseries queries.
+ properties:
+ count:
+ description: Requested result limit. This field has no effect on a timeseries anomaly investigation.
+ example: 10
+ format: int64
+ minimum: 0
+ type: integer
+ order:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFormulaLimitOrder'
+ type: object
+ TimeseriesAnomalyInvestigationFormulaLimitOrder:
+ description: Sort order used when applying a formula series limit.
+ enum:
+ - asc
+ - desc
+ example: desc
+ type: string
+ x-enum-varnames:
+ - ASC
+ - DESC
+ TimeseriesAnomalyInvestigationInfluenceType:
+ description: Kind of influence a tag has on a series.
+ enum:
+ - shape
+ - value
+ example: shape
+ type: string
+ x-enum-varnames:
+ - SHAPE
+ - VALUE
+ TimeseriesAnomalyInvestigationInfluentialTagFinding:
+ description: Finding that attributes an anomaly to an influential tag.
+ properties:
+ description:
+ description: Deterministic explanation of the finding.
+ example: "Filtering out service:api flattens the spike."
+ type: string
+ headline:
+ description: Concise, deterministic finding title.
+ example: "service:api is the likely cause"
+ type: string
+ tag:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFindingTag'
+ type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationInfluentialTagFindingType'
+ required:
+ - type
+ - headline
+ - description
+ - tag
+ type: object
+ TimeseriesAnomalyInvestigationInfluentialTagFindingType:
+ description: Finding category for an influential tag.
+ enum:
+ - influential_tag
+ example: influential_tag
+ type: string
+ x-enum-varnames:
+ - INFLUENTIAL_TAG
+ TimeseriesAnomalyInvestigationInterval:
+ description: Half-open time interval in milliseconds since the Unix epoch.
+ properties:
+ end:
+ description: Exclusive end of the interval.
+ example: 1754406120000
+ format: int64
+ type: integer
+ start:
+ description: Inclusive start of the interval.
+ example: 1754406060000
+ format: int64
+ type: integer
+ required:
+ - start
+ - end
+ type: object
+ TimeseriesAnomalyInvestigationMaximumDeviation:
+ description: Most anomalous point within the detected interval.
+ properties:
+ delta_from_boundary:
+ description: Absolute distance between the observed value and the nearest anomaly boundary.
+ example: 7.0
+ format: double
+ minimum: 0
+ type: number
+ timestamp:
+ description: Point timestamp in milliseconds since the Unix epoch.
+ example: 1754406090000
+ format: int64
+ type: integer
+ value:
+ description: Observed value at the point.
+ example: 42.0
+ format: double
+ type: number
+ required:
+ - timestamp
+ - value
+ - delta_from_boundary
+ type: object
+ TimeseriesAnomalyInvestigationMetaType:
+ description: Response metadata type for a timeseries anomaly investigation.
+ enum:
+ - timeseries_anomaly_investigation
+ example: timeseries_anomaly_investigation
+ type: string
+ x-enum-varnames:
+ - TIMESERIES_ANOMALY_INVESTIGATION
+ TimeseriesAnomalyInvestigationMetricQuery:
+ description: Metrics query referenced by a formula.
+ properties:
+ aggregator:
+ description: Optional scalar aggregator accepted for request compatibility. This field is ignored for timeseries queries.
+ example: avg
+ type: string
+ cross_org_uuids:
+ description: Optional organization UUID used for a cross-organization query. Each query accepts at most one UUID; use separate queries for separate organizations. Influential-tag analysis is currently unsupported for cross-organization queries, but anomaly detection still runs.
+ example:
+ - "00000000-0000-0000-0000-000000000000"
+ items:
+ description: Organization UUID to query.
+ example: "00000000-0000-0000-0000-000000000000"
+ minLength: 1
+ type: string
+ maxItems: 1
+ type: array
+ data_source:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationDataSource'
+ name:
+ description: Name used to reference this query from formulas.
+ example: query1
+ minLength: 1
+ type: string
+ query:
+ description: Datadog metrics query expression.
+ example: "avg:system.cpu.user{env:prod} by {service}"
+ minLength: 1
+ type: string
+ required:
+ - data_source
+ - name
+ - query
+ type: object
+ TimeseriesAnomalyInvestigationQueryExecutionStatus:
+ description: Current execution status for a named query.
+ enum:
+ - running
+ - done
+ example: done
+ type: string
+ x-enum-varnames:
+ - RUNNING
+ - DONE
+ TimeseriesAnomalyInvestigationQueryStatus:
+ description: Execution status for one named query.
+ properties:
+ name:
+ description: Query name from the request.
+ example: query1
+ type: string
+ status:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationQueryExecutionStatus'
+ required:
+ - name
+ - status
+ type: object
+ TimeseriesAnomalyInvestigationRequest:
+ description: Request to investigate a metrics timeseries for anomalies.
+ properties:
+ data:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationRequestData'
+ required:
+ - data
+ type: object
+ TimeseriesAnomalyInvestigationRequestAttributes:
+ description: Attributes of an anomaly investigation request.
+ properties:
+ requests:
+ description: Timeseries requests to investigate. This API version accepts exactly one request.
+ example:
+ - formulas:
+ - formula: "anomalies(query1, 'agile', 3)"
+ from: 1754406000000
+ queries:
+ - data_source: metrics
+ name: query1
+ query: "avg:system.cpu.user{env:prod} by {service}"
+ to: 1754423940000
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationTimeseriesRequest'
+ maxItems: 1
+ minItems: 1
+ type: array
+ required:
+ - requests
+ type: object
+ TimeseriesAnomalyInvestigationRequestData:
+ description: JSON:API resource containing an anomaly investigation request.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationRequestAttributes'
+ type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationType'
+ required:
+ - type
+ - attributes
+ type: object
+ TimeseriesAnomalyInvestigationResponse:
+ description: Response containing the anomaly investigation results and timeseries metadata.
+ properties:
+ data:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResponseData'
+ meta:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResponseMeta'
+ required:
+ - data
+ - meta
+ type: object
+ TimeseriesAnomalyInvestigationResponseAttributes:
+ description: Attributes of an anomaly investigation response.
+ properties:
+ results:
+ description: Results returned in the same order as the submitted requests. This API version returns exactly one result.
+ example:
+ - anomalies: []
+ status: complete
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResult'
+ maxItems: 1
+ minItems: 1
+ type: array
+ required:
+ - results
+ type: object
+ TimeseriesAnomalyInvestigationResponseData:
+ description: JSON:API resource containing anomaly investigation results.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResponseAttributes'
+ id:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResponseID'
+ type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationType'
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ TimeseriesAnomalyInvestigationResponseID:
+ description: Stable identifier for an anomaly investigation response resource.
+ enum:
+ - "0"
+ example: "0"
+ type: string
+ x-enum-varnames:
+ - ZERO
+ TimeseriesAnomalyInvestigationResponseMeta:
+ description: Timeseries execution metadata for the single request accepted by this API version.
+ properties:
+ from_date:
+ description: Effective start of the timeseries query in milliseconds since the Unix epoch.
+ example: 1754406000000
+ format: int64
+ type: integer
+ interval:
+ description: Effective timeseries interval in milliseconds.
+ example: 60000
+ format: int64
+ minimum: 1
+ type: integer
+ queries:
+ description: Execution status for the request's queries.
+ example:
+ - name: query1
+ status: done
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationQueryStatus'
+ type: array
+ res_type:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationMetaType'
+ results_warnings:
+ description: Non-fatal warnings produced while executing the investigation.
+ example: []
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResultsWarning'
+ type: array
+ to_date:
+ description: Effective end of the timeseries query in milliseconds since the Unix epoch.
+ example: 1754423940000
+ format: int64
+ type: integer
+ required:
+ - from_date
+ - to_date
+ - interval
+ - queries
+ - results_warnings
+ - res_type
+ type: object
+ TimeseriesAnomalyInvestigationResult:
+ description: Completed result for one timeseries request. The anomalies array is empty when no qualifying anomaly is found.
+ properties:
+ anomalies:
+ description: Detected anomalies. This API version returns at most one anomaly.
+ example: []
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationAnomaly'
+ maxItems: 1
+ type: array
+ status:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationCompleteStatus'
+ required:
+ - status
+ - anomalies
+ type: object
+ TimeseriesAnomalyInvestigationResultsWarning:
+ description: Non-fatal warning produced while executing the investigation.
+ properties:
+ message:
+ description: Human-readable warning message.
+ example: "Influential tag analysis failed for at least one detected anomaly."
+ type: string
+ name:
+ description: Machine-readable warning name.
+ example: tag_analysis_failed
+ type: string
+ required:
+ - name
+ - message
+ type: object
+ TimeseriesAnomalyInvestigationSeries:
+ description: Logical series on which the anomaly was detected.
+ properties:
+ group_tags:
+ description: Tags identifying the selected group. Empty for a query without grouping.
+ example:
+ - "service:api"
+ items:
+ description: Tag in `key:value` form.
+ example: "service:api"
+ type: string
+ type: array
+ label:
+ description: Display label for the selected series.
+ example: api
+ type: string
+ query_index:
+ description: Zero-based index of the caller's formula that produced the series.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - query_index
+ - group_tags
+ - label
+ type: object
+ TimeseriesAnomalyInvestigationTagAnalysis:
+ description: Summary of optional influential-tag enrichment. Count and key fields are present only when analysis completes; enrichment availability does not affect completion of the investigation result.
+ properties:
+ analyzed_tag_keys:
+ description: Tag keys analyzed. Present only when analysis completes.
+ example:
+ - service
+ - env
+ items:
+ description: Analyzed tag key.
+ example: service
+ type: string
+ type: array
+ status:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationTagAnalysisStatus'
+ tag_keys_analyzed:
+ description: Number of tag keys analyzed. Present only when analysis completes.
+ example: 2
+ format: int64
+ minimum: 0
+ type: integer
+ tag_values_analyzed:
+ description: Number of tag values analyzed. Present only when analysis completes.
+ example: 4
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - status
+ type: object
+ TimeseriesAnomalyInvestigationTagAnalysisStatus:
+ description: Outcome of optional influential-tag enrichment.
+ enum:
+ - complete
+ - unsupported
+ - failed
+ example: complete
+ type: string
+ x-enum-varnames:
+ - COMPLETE
+ - UNSUPPORTED
+ - FAILED
+ TimeseriesAnomalyInvestigationTimeseriesRequest:
+ description: Metrics timeseries request to investigate.
+ properties:
+ formulas:
+ description: Formulas to evaluate. Each formula may contain an explicit `anomalies()` call or a supported metrics expression.
+ example:
+ - formula: "anomalies(query1, 'agile', 3)"
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationFormula'
+ minItems: 1
+ type: array
+ from:
+ description: Start of the investigation time window in milliseconds since the Unix epoch.
+ example: 1754406000000
+ format: int64
+ type: integer
+ interval:
+ description: Optional requested aggregation interval in milliseconds.
+ example: 60000
+ format: int64
+ minimum: 1
+ type: integer
+ queries:
+ description: Metrics queries referenced by the formulas.
+ example:
+ - data_source: metrics
+ name: query1
+ query: "avg:system.cpu.user{env:prod} by {service}"
+ items:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationMetricQuery'
+ minItems: 1
+ type: array
+ to:
+ description: End of the investigation time window in milliseconds since the Unix epoch. Must be later than `from`.
+ example: 1754423940000
+ format: int64
+ type: integer
+ required:
+ - formulas
+ - from
+ - to
+ - queries
+ type: object
+ TimeseriesAnomalyInvestigationType:
+ description: Resource type for a timeseries anomaly investigation.
+ enum:
+ - timeseries_anomaly_investigation
+ example: timeseries_anomaly_investigation
+ type: string
+ x-enum-varnames:
+ - TIMESERIES_ANOMALY_INVESTIGATION
TimeseriesFormulaQueryRequest:
description: A request wrapper around a single timeseries query to be executed.
properties:
@@ -223512,6 +224150,142 @@ paths:
operator: OR
permissions:
- test_optimization_read
+ /api/v2/timeseries-anomaly-investigations:
+ post:
+ description: |-
+ Investigates a metrics timeseries request for its most significant anomaly and returns deterministic findings.
+ Metrics queries with or without grouping are supported. This API version accepts exactly one request and returns at most one anomaly.
+ operationId: CreateTimeseriesAnomalyInvestigation
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ requests:
+ - formulas:
+ - formula: "anomalies(query1, 'agile', 3)"
+ from: 1754406000000
+ queries:
+ - data_source: metrics
+ name: query1
+ query: "avg:system.cpu.user{env:prod} by {service}"
+ to: 1754423940000
+ type: timeseries_anomaly_investigation
+ schema:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationRequest'
+ description: Metrics timeseries request to investigate.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ results:
+ - anomalies:
+ - anomaly_detection:
+ configuration_source: request_formula
+ profile:
+ detected_interval:
+ end: 1754406120000
+ start: 1754406060000
+ display_interval:
+ end: 1754406150000
+ start: 1754406030000
+ findings:
+ - description: "Filtering out service:api flattens the spike."
+ headline: "service:api is the likely cause"
+ tag:
+ influence_type: shape
+ key: service
+ rating: 5.0
+ synonyms: []
+ values:
+ - api
+ type: influential_tag
+ maximum_deviation:
+ delta_from_boundary: 7.0
+ timestamp: 1754406090000
+ value: 42.0
+ series:
+ group_tags:
+ - "service:api"
+ label: api
+ query_index: 0
+ tag_analysis:
+ analyzed_tag_keys:
+ - service
+ - env
+ status: complete
+ tag_keys_analyzed: 2
+ tag_values_analyzed: 4
+ type: spike
+ status: complete
+ id: "0"
+ type: timeseries_anomaly_investigation
+ meta:
+ from_date: 1754406000000
+ interval: 60000
+ queries:
+ - name: query1
+ status: done
+ res_type: timeseries_anomaly_investigation
+ results_warnings: []
+ to_date: 1754423940000
+ schema:
+ $ref: '#/components/schemas/TimeseriesAnomalyInvestigationResponse'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unprocessable Entity
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - timeseries_query
+ - metrics_read
+ summary: Investigate a timeseries anomaly
+ tags:
+ - Timeseries Anomaly Investigations
+ x-codegen-request-body-name: body
+ x-menu-order: 1
+ x-permission:
+ operator: AND
+ permissions:
+ - timeseries_query
+ - metrics_read
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
/api/v2/trace/{trace_id}:
get:
description: |-
@@ -227664,6 +228438,8 @@ tags:
name: Test Optimization
- description: Ingest and manage threat intelligence data for security enrichment and investigation.
name: Threat Intelligence
+ - description: Investigate metrics timeseries anomalies and return deterministic findings.
+ name: Timeseries Anomaly Investigations
- description: |-
Manage your Datadog Twilio integration accounts directly through the Datadog API.
Create, update, and delete accounts, configure authentication and settings, and
diff --git a/hugo/data/api/v2/translate_actions.json b/hugo/data/api/v2/translate_actions.json
index 5e0c5efc128..748bc9dc946 100644
--- a/hugo/data/api/v2/translate_actions.json
+++ b/hugo/data/api/v2/translate_actions.json
@@ -7326,6 +7326,12 @@
"request_description": "",
"request_schema_description": "The request for a flaky tests search."
},
+ "CreateTimeseriesAnomalyInvestigation": {
+ "description": "Investigates a metrics timeseries request for its most significant anomaly and returns deterministic findings.\nMetrics queries with or without grouping are supported. This API version accepts exactly one request and returns at most one anomaly.",
+ "summary": "Investigate a timeseries anomaly",
+ "request_description": "Metrics timeseries request to investigate.",
+ "request_schema_description": "Request to investigate a metrics timeseries for anomalies."
+ },
"GetTraceByID": {
"description": "Retrieve a full APM trace by its trace ID, including every span in the trace.\nTraces are returned from live storage when available and fall back to longer-term storage.\nThis endpoint is rate limited to `60` requests per minute per organization.",
"summary": "Get a trace by ID"
diff --git a/hugo/data/api/v2/translate_tags.json b/hugo/data/api/v2/translate_tags.json
index d1120b1158f..f1c8f1530e4 100644
--- a/hugo/data/api/v2/translate_tags.json
+++ b/hugo/data/api/v2/translate_tags.json
@@ -559,6 +559,10 @@
"name": "Threat Intelligence",
"description": "Ingest and manage threat intelligence data for security enrichment and investigation."
},
+ "timeseries-anomaly-investigations": {
+ "name": "Timeseries Anomaly Investigations",
+ "description": "Investigate metrics timeseries anomalies and return deterministic findings."
+ },
"twilio-integration-accounts": {
"name": "Twilio Integration Accounts",
"description": "Manage your Datadog Twilio integration accounts directly through the Datadog API.\nCreate, update, and delete accounts, configure authentication and settings, and\nenable or disable dataflows such as message logs, event logs, alerts, call\nsummaries, and Cloud Cost Management metrics. See the\n[Twilio integration page](https://docs.datadoghq.com/integrations/twilio/) for\nmore information."