|
NAME | C SYNOPSIS | CAVEAT | DESCRIPTION | RETURN VALUE | SEE ALSO | COLOPHON |
|
|
|
PMLOCALPMDA(3) Library Functions Manual PMLOCALPMDA(3)
__pmLocalPMDA - change the table of DSO PMDAs for PM_CONTEXT_LOCAL
contexts
#include "pmapi.h"
#include "libpcp.h"
int __pmLocalPMDA(int op, int domain, const char *name,
const char *init);
cc ... -lpcp
This documentation is intended for internal Performance Co-Pilot
(PCP) developer use.
These interfaces are not part of the PCP APIs that are guaranteed
to remain fixed across releases, and they may not work, or may
provide different semantics at some point in the future.
PCP contexts of type PM_CONTEXT_LOCAL are used by clients that
wish to fetch metrics directly 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_CON‐
TEXT_LOCAL was hardcoded to the following:
* The PMDA (or PMDAs) that export the operating system performance
data and data about process activity.
* The mmv PMDA.
* The sample PMDA provided $PCP_LITE_SAMPLE or $PMDA_LOCAL_SAMPLE
is set in the environment - used mostly for QA and testing.
The initial table of PMDAs available for use with PM_CONTEXT_LOCAL
is now generated dynamically 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 appli‐
cation using a PM_CONTEXT_LOCAL context.
__pmLocalPMDA provides a number of services to amend the table of
PMDAs available for use with PM_CONTEXT_LOCAL.
The op argument specifies the what should be done and takes one of
the following values and actions:
PM_LOCAL_ADD Append an entry to the table for the PMDA with a
Performance Metrics Domain (PMD) of domain, the
path to the DSO PMDA is given by path and the PM‐
DA's initialization routine is init.
PM_LOCAL_DEL Removes all entries in the table where the domain
matches, or the path matches. Setting the argu‐
ments domain to -1 or path to NULL to force match‐
ing 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 this case.
The domain, name and init arguments have similar syntax and seman‐
tics to the associated fields in the pmcd(1) configuration file.
The one difference is the path argument which is used by __pmLo‐
calPMDA to find a likely looking DSO by searching in this order:
$PCP_PMDAS_DIR/path, path, $PCP_PMDAS_DIR/path.dso-suffix and fi‐
nally 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_LOCAL_DEL operation,
PM_ERR_INDOM is returned.
pmcd(1), PMAPI(3), pmNewContext(3) and pmSpecLocalPMDA(3).
This page is part of the PCP (Performance Co-Pilot) project. In‐
formation about the project can be found at ⟨http://www.pcp.io/⟩.
If you have a bug report for this manual page, send it to
[email protected]. This page was obtained from the project's upstream
Git repository ⟨https://github.com/performancecopilot/pcp.git⟩ on
2025-08-11. (At that time, the date of the most recent commit
that was found in the repository was 2025-08-11.) If you discover
any rendering problems in this HTML version of the page, or you
believe there is a better or more up-to-date source for the page,
or you have corrections or improvements to the information in this
COLOPHON (which is not part of the original manual page), send a
mail to [email protected]
Performance Co-Pilot PMLOCALPMDA(3)