[aws_lambda_otel] Add ML anomaly detection modules - #19923
Conversation
99c708e to
e1d3d1b
Compare
✅ Elastic Docs Style Checker (Vale)No issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
jakubgalecki0
left a comment
There was a problem hiding this comment.
Lets please make sure that we follow naming convention of other aws_otel assets i.e.
[<servicename> OTel] Description
Right now we have following convention: AWS Lambda function errors and throttles (OpenTelemetry)
Also add entry for tags since package-spec allows it to be tagged - https://github.com/elastic/package-spec/blob/main/spec/integration/kibana/tags.spec.yml#L34
asset_types:
- dashboard
- alerting_rule_template
- slo_template
- ml_module <<<
Other than that it looks good.
Add ML anomaly detection modules for Lambda function performance (duration, concurrency) and errors/throttles.
…egation - Add every declared influencer as a composite-aggregation source. Elasticsearch only analyses influencers that are present in the datafeed aggregation, so cloud.account.id (and cloud.region on ECS) were silently never analysed. - date_histogram fixed_interval 900s -> 5m, matching the CloudWatch collection period rather than the bucket span, with an explicit datafeed frequency. - Title now follows the [AWS ... OTel] convention used by the package's other Kibana assets. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
968cd59 to
bae24a0
Compare
|
✅ All changelog entries have the correct PR link. |
💚 Build Succeeded
History
|
|
Tick the box to add this pull request to the merge queue (same as
|
|
Package aws_lambda_otel - 0.10.0 containing this change is available at https://epr.elastic.co/package/aws_lambda_otel/0.10.0/ |
What
Adds a machine-learning anomaly-detection module (
kibana/ml_module/) to the aws_lambda_otel integration, proposing anomaly detection as an addition alongside the integration's existing dashboards, alert rules, and SLO templates. Modeled on thekubernetes_otelML module (#19030).Why — complements the threshold alerts, doesn't duplicate them
The shipped alert rules catch per-entity threshold breaches (a value crossing a fixed line). These ML jobs model each metric per entity against its own history, catching the drift those miss — e.g. latency creep, concurrency climbing toward the account limit before throttling, or a per-function error/throttle rate elevation below the fixed threshold. Each detector's description defers per-entity spikes to the alert rules, the same split
kubernetes_oteluses. The detectors are drawn from the service's own signals and real failure modes — not tailored to any specific workflow.Jobs
aws_lambda_function_performance_anomaly— perFunctionName(partitioncloud.region):high_meanDuration and ConcurrentExecutions.aws_lambda_function_error_anomaly— perFunctionName(partitioncloud.region), the per-bucket Sum:high_meanErrors, Throttles, DeadLetterErrors.Datafeeds are composite-aggregated — required, because these
metrics-aws.*.otel-*indices containaggregate_metric_doublefields that a plain (non-aggregating) ML datafeed cannot read.Validation
Drafted and validated against live AWS OTel telemetry: the job(s) establish baselines over historical data. The RDS connection-pool-exhaustion case was scored against a known injected incident and detected it on the correct entity (recall/precision/f1 = 1.0).
Methodology, tooling, and the scoring harness: https://github.com/elastic/aws_otel_ml_draft
Notes for reviewers (@elastic/obs-infraobs-integrations)
bucket_span, or thresholds.subscription: basic(matcheskubernetes_otel; ML availability is a deployment concern, not a package condition).FunctionName), not the normalized fields the alert-ruletermFields reference (those are not present in the documents).DeadLetterErrorsonly emits when a DLQ is configured (absent otherwise — harmless).