pmSpecLocalPMDA - process command-line argument for the table of DSO
PMDAs
#include "pmapi.h"
#include "libpcp.h"
char *pmSpecLocalPMDA(const char *
spec);
cc ... -lpcp
For Performance Co-Pilot (PCP) applications, 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).
pmSpecLocalPMDA provides a convenience wrapper to be used by applications
that wish to use a command line argument (usually with
-K) to control
the DSO PMDAs that are available for a
PM_CONTEXT_LOCAL context.
The
spec argument specifies actions for one or more DSO PMDAs using up to
four fields separated by commas (``,''), namely:
- -
- an opcode with one of the values add (add a new
entry), del (delete an existing entry) or clear (clear all
entries from the table).
- -
- the PMDA's domain number
- -
- the path to the PMDA DSO (may be absolute or relative to
the $PCP_VAR_DIR/pmdas directory and the DSO suffix is optional), and
- -
- the name of the PMDA's initialization routine.
All fields are required to add a new entry. To delete an entry the opcode is
required plus either or both of the domain number and path fields. To clear
all entries, only the opcode is required.
If
spec is parsed successfully, then the DSO table is updated with the
extracted fields.
On success,
pmSpecLocalPMDA will return NULL.
On error or failure,
pmSpecLocalPMDA will return a pointer to a static
error message.
Some examples of valid
spec strings:
- clear
- Delete all entries from the DSO table.
- add,123,foo/foo_pmda,foo_init
- Add the ``foo'' PMDA using domain 123. The PMDA's DSO is
most likely in below the directory $PCP_PMDAS_DIR and named
foo/foo_pmda.so (for ELF-style platforms) or
foo/foo_pmda.dylib (for BSD-style platforms) or
foo\foo_pmda.dll (for Windows-style platforms). The initialization
routine for the ``foo'' PMDA is foo_init().
- del,123
- Delete the entry for the DSO with domain 123.
- del,,foo/foo_pmda
- Delete the entry with a pathname to the DSO that matches
foo/foo_pmda.
- del,123,foo/foo_pmda
- Delete the entry for the DSO with either domain 123 and/or
a pathname to the DSO that matches foo/foo_pmda.
pmcd(1),
PMAPI(3) and
pmNewContext(3).