This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
service: don't use sysinfo on Linux for metric collection #6805
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.
This PR updates our metrics code to not use the
sysinfo
crate on Linux and instead get all of the data throughprocfs
.Additionally it fixes an issue on platform that still use
sysinfo
: We were tracking metrics of all processes running in the node throughsysinfo
which in turn will cache file descriptors of all accesses to/proc/<pid>/stat
. After this PR we will only collect metrics for the process of the node itself. Unfortunatelysysinfo
will still keep track of all threads spawned by the node and will keep a file descriptor for each/proc/<pid>/task/<tid>/stat
and there is no way to avoid this currently. These will be bound by the number of threads we spawn though and they should not leak (i.e. they'll be collected after a given threads exits). Below you can see a plot on the number of file handles for a Kusama node before/after this change.