----- Original Message -----
> What's the best way to develop an out-of-tree DSO PMDA? Can I avoid
> having
> to patch the PCP source to build just the PMDA? (I'd like to keep the
> PMDA
> code in the application source tree instead of keeping a patched PCP
> tree around.)
This is readily doable ... we do out-of-tree builds for several PMDAs
we have here that are of no relevance to anyone else. There's not
really anything special to it - just include the pcp headers and link
with libpcp & libpcp_pmda as normal. You need to ensure you don't
pick a domain# that conflicts with existing PMDAs, but there is no
requirement to have an entry in pcp.stdpmid. These days (last 6-12
months IIRC) we also ship the builddefs and buildrules files from the
PCP build in /usr/include/pcp, as a convenience for out-of-tree build
systems, so you can make use of makefile macros from those too if it
helps.
> I am considering replacing some code I have which uses the MMV PMDA
> with a custom PMDA that exports the metrics with less overhead. (The
> application already has tons of internal metrics and keeping the MMV
> file updated is significant enough overhead that I'd like to have a
> faster way to feed the stats right into the PMCD.
> Currently, I'm thinking that having a DSO PMDA
> which uses shared memory or a mmap'ed file to access the raw stats
> structures in the application.)
That last sentence describes MMV PMDA (dso, mmap), except for the "raw
stats" bit ... can you detail the overhead issue? (is this something
that could/should be improved in MMV? perhaps via some kind of layout
hint mechanism in MMV to ensure hot metrics don't share cachelines or
something like that ... if thats the issue?)
Thanks!
--
Nathan
|