Hello,
I have started looking into reviving the hotproc pmda. Before I
get too far into it, I wanted to make sure no one else was looking at it
and if my approach looks reasonable.
Attached are both modified source files and a patch to linux_proc
of a git checkout around the time of roughly 3.9.2. This is very much a
proof of concept at this point, memory allocation could likely be
optimized, no error checking, qa, etc.
My intent was to try to factor this into the standard linux_proc
pmda to make maintaining it easier. My goal was minimal code changes,
and piggyback as much as possible onto existing code to do the data
fetches into /proc. To do this I replicated the metrics from root_proc
that seemed to be reasonable to track on a hotproc basis and just offset
the cluster #. This could be automated with an awk script as originally
done in hotproc.
I have done VERY minimal testing, but this should compile and at
this point present a duplicate of the proc metrics under the hotproc
namespace. My plan was then to start importing the config file parsing
from the old hotproc and do the pid filtering based on those parameters.
I haven't yet really thought about all the extra stuff the hotproc
pmda gave you in terms of cpu cycles consumed by un-tracked processes,
etc. At this point my use case is just to present non-root, high cpu
processes but I figure trying to get as much of the original hotproc
functionality would be desirable. Hopefully these can be added in as I
progress.
I am not tied at all to the approach as implemented. I just wanted
to get something up and running as quickly as possible to get a feel for
the level of effort required. Feel free to suggest better ways of doing
this. I have many more questions once I can get some direction on the
way to proceed.
Thanks
Martins
hotproc_zip
Description: Binary data
|