We welcome your involvement in the Performance Co-Pilot project!
If you have discovered a bug, or wish to see a specific new feature, please report that in our issue tracking system.
We are greatly interested in any efforts to expand the scope of the available performance metrics with new plugins or agents, to port existing performance tools to the PCP APIs, and to develop new clients to consume and display performance data delivered over the PCP APIs.
If you are interested in getting involved in any of these areas we recommend joining the PCP mailing list, the #pcp IRC channel on the FreeNode network, writing new code, and sending your changes out early for review.
Our preferred method of exchanging code, documentation, tests and new ideas is via git. Feel free to locate your source on either a public hosting service (e.g. github) or for regular committers we can create an account for you on either oss.sgi.com or sourceware.org.
Some potential PCP projects include:
New performance metrics domain agents (PMDAs), or extensions to the existing agents to add more metrics.
New monitoring tools. Or modify your favourite monitoring tool to convert it to use the PCP APIs, and get distributed monitoring and retrospective replay for free. For example, see the PCP implementations of collectl and atop in the current PCP release.
New importing tools for historical data for replay and analysis with tools from the PCP toolkit.
Agents for proprietary databases like Oracle, DB2, Sybase, etc. (these were once done for older databases and platforms, but really could do with a rewrite by someone with relevant DBMS expertise). Note: code for much of an Oracle PMDA is merged in the tree now, and would make a good starting point for a production quality PMDA.
The PCP GUI tools provide opportunities for development in the graphical environments on all of the platforms supported by PCP and QT (Linux, Windows, Mac OS X, and many others). The scope for new ideas here is immense, but here are a handful of suggestions:
Make pmchart more dynamically extensible, using a scripting language like python or QtScript. Goal here is to reach the point where functionality from tools like gmemusage, grosview, pmgadgets, etc. can be implemented as scripts.
Move the pmtime interface code into the Qmc library and update pmdumptext to test and use it too (along the lines of pmval -g and pmstat -g).
Complete the port of pmview (3D performance scenes) - significant progress has been made using Coin3D as an Inventor replacement, but much work remains before this is in a releasable state.

