[elastic_agent] Add TSDB dimensions and fix metric_type declarations#18508
Open
AndersonQ wants to merge 1 commit intoelastic:mainfrom
Open
[elastic_agent] Add TSDB dimensions and fix metric_type declarations#18508AndersonQ wants to merge 1 commit intoelastic:mainfrom
AndersonQ wants to merge 1 commit intoelastic:mainfrom
Conversation
9c202fc to
d2cf4f4
Compare
🚀 Benchmarks reportTo see the full report comment with |
d2cf4f4 to
7cab099
Compare
Add `dimension: true` to fields across the 12 elastic_agent metrics
data streams. The added dimensions are redundant with the existing
dimensions (1-to-1 with `agent.id` or `component.id`) and therefore
do not increase time-series cardinality.
Fix metric_type on:
- beat.stats.libbeat.pipeline.events.active: counter -> gauge
- beat.stats.libbeat.output.events.active: counter -> gauge
- filebeat_input.*.histogram.count: gauge -> counter
Add metric_type on numeric fields that were missing it: system stats,
cpu ticks, memstats, handles, runtime.goroutines, uptime, cgroup
stats, libbeat pipeline/config/output metrics, write-latency histogram,
system.process.cgroup.{memory.mem.failures, cpuacct.percpu}, and
filebeat_input.{cel_executions, system_packet_drops}.
Assisted by Claude Code
7cab099 to
baa2f33
Compare
|
Pinging @elastic/elastic-agent-data-plane (Team:Elastic-Agent-Data-Plane) |
There was a problem hiding this comment.
Pull request overview
This PR updates the elastic_agent integration’s metrics data streams to better align with TSDB requirements by adding explicit TSDB dimensions and completing/correcting metric_type annotations for numeric fields.
Changes:
- Add
dimension: trueto key identifier fields across the Elastic Agent metrics data streams (and related ECS fields used in those streams). - Fix incorrect
metric_typevalues (notably “active” event counts as gauges; histogram counts as counters). - Add missing
metric_typeannotations for many numeric stats fields (system, runtime, cgroup, libbeat pipeline/output, etc.).
Reviewed changes
Copilot reviewed 59 out of 59 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/elastic_agent/manifest.yml | Bump package version to 2.8.0. |
| packages/elastic_agent/changelog.yml | Add 2.8.0 changelog entry for TSDB dimensions + metric_type fixes. |
| packages/elastic_agent/data_stream/packetbeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (packetbeat metrics). |
| packages/elastic_agent/data_stream/packetbeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/packetbeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/packetbeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/packetbeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/osquerybeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (osquerybeat metrics). |
| packages/elastic_agent/data_stream/osquerybeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/osquerybeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/osquerybeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/osquerybeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/metricbeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (metricbeat metrics). |
| packages/elastic_agent/data_stream/metricbeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/metricbeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/metricbeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/metricbeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/heartbeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (heartbeat metrics). |
| packages/elastic_agent/data_stream/heartbeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/heartbeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/heartbeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/heartbeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/fleet_server_metrics/fields/fields.yml | Add dimensions + metric_type annotations (fleet-server metrics). |
| packages/elastic_agent/data_stream/fleet_server_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/fleet_server_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/fleet_server_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/filebeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (filebeat metrics). |
| packages/elastic_agent/data_stream/filebeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/filebeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/filebeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/filebeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/filebeat_input_metrics/fields/fields.yml | Fix histogram .count metric_type + add dimensions/metric_type for input fields. |
| packages/elastic_agent/data_stream/filebeat_input_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/filebeat_input_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/filebeat_input_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/endpoint_security_metrics/fields/fields.yml | Add dimensions + metric_type annotations (endpoint security metrics). |
| packages/elastic_agent/data_stream/endpoint_security_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/endpoint_security_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/endpoint_security_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/elastic_agent_metrics/fields/fields.yml | Add dimensions + metric_type annotations (elastic_agent metrics). |
| packages/elastic_agent/data_stream/elastic_agent_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/elastic_agent_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/elastic_agent_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/elastic_agent_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/cloudbeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (cloudbeat metrics). |
| packages/elastic_agent/data_stream/cloudbeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/cloudbeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/cloudbeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/cloudbeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/auditbeat_metrics/fields/fields.yml | Add dimensions + metric_type annotations (auditbeat metrics). |
| packages/elastic_agent/data_stream/auditbeat_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/auditbeat_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/auditbeat_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/auditbeat_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
| packages/elastic_agent/data_stream/apm_server_metrics/fields/fields.yml | Add dimensions + metric_type annotations (apm-server metrics). |
| packages/elastic_agent/data_stream/apm_server_metrics/fields/ecs.yml | Mark selected ECS agent fields as TSDB dimensions. |
| packages/elastic_agent/data_stream/apm_server_metrics/fields/beat-stats-fields.yml | Add dimensions + metric_type annotations for beat stats fields. |
| packages/elastic_agent/data_stream/apm_server_metrics/fields/beat-fields.yml | Mark beat.type as a TSDB dimension. |
| packages/elastic_agent/data_stream/apm_server_metrics/fields/agent.yml | Mark selected host/agent identity ECS fields as dimensions. |
Comments suppressed due to low confidence (1)
packages/elastic_agent/data_stream/filebeat_input_metrics/fields/fields.yml:21
- The descriptions for the dynamic
path_matchmappings contain malformed inline code formatting (path_match:``...). This renders oddly in generated docs; consider fixing the backticks so the mapping expression is correctly shown.
- name: '*.histogram.count'
type: long
metric_type: counter
description: Map all fields with `path_match:``*.histogram.count` to `long`
- name: '*.histogram.*'
type: double
metric_type: gauge
description: Map all fields with `path_match:``*.histogram.*` to `double`
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| type: keyword | ||
| dimension: true | ||
| ignore_above: 1024 | ||
| description: The binary that exeuctes the component |
| - name: percpu | ||
| type: object | ||
| object_type: long | ||
| metric_type: counter |
| - name: cel_executions | ||
| type: long | ||
| metric_type: counter | ||
| description: URL-ish of input resource |
💚 Build Succeeded
History
cc @AndersonQ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed commit message
Checklist
changelog.ymlfile.Author's Checklist
How to review the PR
In order to better see what fields are being changes I suggest using git to see the diff with more context:
git show -U10 HEADthe flag
-Ucontrols how much context (lines before and after the change) to show.How to test this PR locally
Related issues
Screenshots