[elastic_agent] Fix otelcol.* mapping conflicts in logs data streams#19070
Conversation
|
Pinging @elastic/elastic-agent (Team:Elastic-Agent) |
TL;DRThe Buildkite failure is a merge conflict during the repository post-checkout hook, not a test/runtime regression. Rebase Remediation
Investigation detailsRoot CauseBuildkite fails in Conflicting files are both modified in PR and in
Evidence
I also reproduced the same failure locally by attempting Verification
Follow-upAfter rebase conflict resolution, CI should proceed past pipeline upload and then expose any downstream issues (if any). Note 🔒 Integrity filter blocked 3 itemsThe following items were blocked because they don't meet the GitHub integrity level.
To allow these resources, lower tools:
github:
min-integrity: approved # merged | approved | unapproved | noneWhat is this? | From workflow: PR Buildkite Detective Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. |
🚀 Benchmarks reportPackage
|
| Data stream | Previous EPS | New EPS | Diff (%) | Result |
|---|---|---|---|---|
status_change_logs |
500000 | 250000 | -250000 (-50%) | 💔 |
To see the full report comment with /test benchmark fullreport
💚 Build Succeeded
History
|
|
Package elastic_agent - 2.9.2 containing this change is available at https://epr.elastic.co/package/elastic_agent/2.9.2/ |
The OTel Collector
servicepackage annotates internal component logs with fields likeotelcol.signalandotelcol.signal.outputin the same document:{ "message": "Retrying failed request", "otelcol.signal": "logs", "otelcol.signal.output": "failed", "otelcol.component.id": "elasticsearch/default", "otelcol.component.kind": "exporter" }Without an explicit mapping, Elasticsearch treats the dot as a path separator and interprets
otelcol.signalas both a leaf value and a parent object — causing a mapping conflict and silently dropping these fields from the index.Adding
otelcol.*as an object withsubobjects: falsetells Elasticsearch to treat dots as literal characters, so each field is indexed independently as a keyword.Checklist
changelog.ymlfile.[ ] I have verified that any added dashboard complies with Kibana's Dashboard good practicesHow to test this PR locally
All pipeline tests should pass, including
test-otelcol-dotted-fields.jsonwhich exercises documents containing bothotelcol.signalandotelcol.signal.output.Related issues