__pmLocalPMDA - change the table of DSO PMDAs for PM_CONTEXT_LOCAL contexts
int __pmLocalPMDA(int op, int domain, const char *name, const char *init);
cc ... -lpcp
PCP contexts of type PM_CONTEXT_LOCAL are used by clients that wish to fetch metrics di-
rectly from one or more PMDAs on the local host without involving pmcd(1). A PMDA that is
to be used in this way must have been built as a Dynamic Shared Object (DSO).
Historically the table of PMDAs available for use with PM_CONTEXT_LOCAL was hardcoded to
* The PMDA (or PMDAs) that export the operating system performance data and data about
* The mmv PMDA.
* The sample PMDA provided $PCP_LITE_SAMPLE or $PMDA_LOCAL_SAMPLE is set in the environ-
ment - used mostly for QA and testing.
The initial table of PMDAs available for use with PM_CONTEXT_LOCAL is now generated dynam-
ically from all those PMDAs that have been installed as DSOs on the local host. The one
exception is the ``pmcd'' PMDA which only operates correctly in the address space of a
running pmcd(1) process and so is not available to an application using a PM_CONTEXT_LOCAL
__pmLocalPMDA provides a number of services to amend the table of PMDAs available for use
The op argument specifies the what should be done and takes one of the following values
PM_LOCAL_ADD Append an entry to the table for the PMDA with a Performance Metrics Do-
main (PMD) of domain, the path to the DSO PMDA is given by path and the
PMDA's initialization routine is init.
PM_LOCAL_DEL Removes all entries in the table where the domain matches, or the path
matches. Setting the arguments domain to -1 or path to NULL to force
matching on the other argument. The init argument is ignored.
PM_LOCAL_CLEAR Remove all entries from the table. All the other arguments are ignored in
The domain, name and init arguments have similar syntax and semantics to the associated
fields in the pmcd(1) configuration file. The one difference is the path argument which
is used by __pmLocalPMDA to find a likely looking DSO by searching in this order: $PCP_PM-
DAS_DIR/path, path, $PCP_PMDAS_DIR/path.dso-suffix and finally path.dso-suffix (dso-suffix
is the local platform specific default file name suffix for a DSO, e.g. so for Linux,
dylib for Mac OS X, dll for Windows, etc.).
In most cases, __pmLocalPMDA returns 0 to indicate success. If op is invalid, then the
return value is PM_ERR_CONV else if there is no matching table entry found for a PM_LO-
CAL_DEL operation, PM_ERR_INDOM is returned.
pmcd(1), PMAPI(3), pmNewContext(3) and __pmSpecLocalPMDA(3).
Performance Co-Pilot PMLOCALPMDA(3)