elastic / elastic/elastic-agent
Agent per process Metrics document standardization
- Dominant language
- Go
- Stars
- 275
- Forks
- 264
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 312
Description
When using the `/stats` API, the event is returned as is. When collecting stats from Beats the `beats` namespace does contain process metrics like cgroup, CPU, and memory usage. But the process name is not included. When metrics are queried via Agent, the namespace `beats` should become `process`, plus the field `process.name` should be added, which includes the process name known to agent (e.g. `filebeat-default-monitoring`).
Although we have no event routing availale yet, data source should be encouraged to provide a data stream meta-data as hints (which can still be ignored). When quering process stats via agent, the JSON document published by Agent should include the data stream fields.
The change could be added to libbeat, or (maybe easier) as a processing step in Agent. When done in Agent we already have a place where we can massage endpoint stats in the future.
Contributor guide
Research direction
Start by tracing how Agent handles the /stats API and compare the Beats process-metrics payload with the Agent-published JSON. Check the libbeat and Agent processing options mentioned in the issue, then verify that process metrics use the process namespace, include process.name, and retain data stream metadata fields.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend, observability-sre
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100