pmNameAll — translate a PMID to a set of performance metric names

C Synopsis

#include <pcp/pmapi.h>

int pmNameAll(pmID pmid, char ***nameset);

cc ... -lpcp

Description

Given a Performance Metric Identifier (PMID) via pmid, pmNameAll will determine all the corresponding metric names, if any, in the  Performance Metrics Name Space (PMNS), and return these via nameset.

The resulting list of pointers nameset and the values (the relative names) that the pointers reference will have been allocated by pmNameAll with a single call to malloc(3), and it is the responsibility of the pmNameAll caller to use free(nameset) to release the space when it is no longer required.

In the absence of errors, pmNameAll returns the number of names in nameset.

For many examples of a PMNS, there will be a 1:1 mapping between a name and a PMID, and under these circumstances, pmNameID(3) provides a slightly simpler interface in the absence of duplicate names for a particular PMID.

See Also

PMAPI(3), pmGetChildren(3), pmGetChildrenStatus(3), pmGetConfig(3), pmLoadASCIINameSpace(3), pmLoadNameSpace(3), pmLookupName(3), pmNameID(3), pmNewContext(3), pcp.conf(5), pcp.env(5) and PMNS(5).

Diagnostics

PM_ERR_NOPMNS

Failed to access a PMNS for operation. Note that if the application hasn't a priori called pmLoadNameSpace(3) and wants to use the distributed PMNS, then a call to pmNameAll must be made after the creation of a context (see pmNewContext(3)).

PM_ERR_PMID

pmid does not correspond to a defined PMID in the PMNS.

PM_ERR_*

Other diagnostics are for protocol failures when accessing the distributed PMNS.

Referenced By

pmdaName(3), pmNameID(3).

The man page pmnameall(3) is an alias of pmNameAll(3).

PCP Performance Co-Pilot