-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cgroup.cpuacct percentages #25057
Add cgroup.cpuacct percentages #25057
Conversation
Pinging @elastic/integrations (Team:Integrations) |
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
Trends 🧪💚 Flaky test reportTests succeeded. Expand to view the summary
Test stats 🧪
|
@jsoriano some good suggestions, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A possible leftover and some nitpicking, for the rest it LGTM 👍
* initial commit of cgroup cpuacct percentages * add in percpu flag * fix up pct function * formatting, name cleanup * remove old code (cherry picked from commit b2f22fa)
* upstream/master: packer cache support for the 7.x and 7.latestMinor branches (elastic#25091) Remove EventFetcher and EventsFetcher interface (elastic#25093) Update go-structform to 0.0.8 (elastic#25051) Update copy_fields.asciidoc (elastic#25053) [elastic-agent] ensure container is backwards compatible (elastic#25092) Add --fleet-server-service-token. Rename --fleet-server to --fleet-server-es. (elastic#25083) Add cgroup.cpuacct percentages (elastic#25057) Add tests for truncated and symlinked files in filestream input (elastic#24425) Fix panic when Hearbeat monitor initialization fails twice (elastic#25073) [Filebeat][httpjson] Change append transform to initiate new fields as a slice (elastic#25074) Osquerybeat: Result values type translation (elastic#25012) Update Osquerybeat spec to get it downloading from the correct artifactory path (elastic#25076) Fix changelog (elastic#25079) Strip Azure EventHub connection string in debug logs (elastic#25066) Change googlecloud to gcp in field names (elastic#25038) Bump stack version to 7.12.0 for testing (elastic#24957) packer-cache: cache the existing docker images on ARM and some more (elastic#25068) Disable logstash TestFetch flaky test (elastic#25044)
What does this PR do?
This PR addresses #23391 and adds percentage values to the
cpuacct
cgroup. Although that change is fairly straightforward, I felt the need to do some refactoring to make it nice--right now, the process metricset tends to divide work between the metricset itself and libbeat in a way that doesn't seem consistent, as libbeat does almost all the heavy lifting for regular process metrics, and then for cgroup data we do all the work in the metricset.In order to emulate how process calculates regular cpu percentages, I just had libbeat manage cgroup data the way in manages all the other process data, so we just need to add the bits that deals with cgroup logic, and everything else is handled by the existing process process code. As a result of this, most of the cgroup logic has now been moved to libbeat, since I felt it made organizational sense to not flip-flop between doing the
MapStr
manipulation between two different libraries.Why is it important?
People are asking for the enhancement in #23391
Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.How to test this PR locally
system/process
on a host with cgroups, and cgroup processes running.system.process.cgroups.cpuacct
, make sure the values are there, and that they make sense.Related issues