Skip to main content

PCP, Qpid, and PMDA++

· 2 min read
PMDA++ logo

I've recently been working with Performance Co-Pilot (PCP) - specifically, creating some PCP add-ons (known as PMDAs) for exposing custom application metrics to PCP.

While doing so, it became pretty clear to me, that although PCP's PMDA C API is very efficient, a good quality C++ wrapper could significantly cut PMDA development and maintenance time (for people like me, at least), while also increasing runtime safety by building-in all of the checks and balances that most PMDAs (should) perform, in a generic reusable manner.

This sounded like a bit of fun, and suited my present hunger for some more advanced C++ API design work, so went about implementing such a library.

PMDA++​

To quote from the PMDA++ project page:

PMDA++ is a header-only library that allows developers to write PMDAs in C++. It is a light C++ wrapper around PCP's C APIs.

That sums it up quite well.

If you're interesed, you can read more about the project, including basic code examples etc, on the PMDA++ project page, available on GitHub.

Qpid PMDA​

Additionally, I've made available a basic PMDA for Apache Qpid message brokers using the above PMDA++ library.

This PMDA subscribes to metrics data generated by Qpid messaging brokers, and exports them to the PCP monitoring system.

Project Pages​

The above projects can be found on GitHub at the following locations:

Feel free to have to browse the code, suggest improvements, report issues, clone / fork, create pull requests, whatever you like.