CIM <-> PCP (http://oss.sgi.com/projects/pcp) bridge
<fche@redhat.com>

The idea of the bridge is to create a suite of CIM classes (derived from
CIM_StatisticsData), each of which represents one PCP metric.  There are
hundreds of these.  (Since PCP metrics can come and go, the MOF and REG
files may be regenerated by a simple shell script at any with an enclosed
shell script.)

Install PCP and start the pmcd service to start.  We assume you're
already running OpenLMI / Pegasus with a client like YAWN and are far
more familiar with this WBEM business than the author.  Install the
CIM <-> PCP bridge thusly:

        openlmi-pcp-generate

This step includes regenerating MOF/REG files /var/lib/openlmi-providers/*PCP*.

For example, whereas PCP command line tools may show these sorts of results:

        % pminfo -dTf hinv.machine

        hinv.machine
            Data Type: string  InDom: PM_INDOM_NULL 0xffffffff
            Semantics: discrete  Units: none
        Help:
        machine name, IP35 if SGI SNIA, else simply linux
            value "linux"

        % pminfo -dTf network.interface.total.bytes
        network.interface.total.bytes
            Data Type: 64-bit unsigned int  InDom: 60.3 0xf000003
            Semantics: counter  Units: byte
        Help:
        network total (in+out) bytes from /proc/net/dev per network interface
            inst [0 or "eth0"] value 585236365
            inst [1 or "lo"] value 85894766

These same metrics would show up in the CIM namespace as classes

        PCP_Metric_hinv__machine
and     PCP_Metric_network__interface__total__bytes

with instances with InstanceIDs such as

        PCP:hinv.machine
        PCP:network.interface.total.bytes:lo
        PCP:network.interface.total.bytes:eth0

These currently supply a string-formatted value of the respective
metric measurement, an accurate StatisticTime, and other metadata.
