Provided by: libpcp3-dev_5.3.7-1_amd64 bug


       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 the ``foo'' PMDA using domain 123.  The PMDA's DSO is most likely in below  the
              directory  $PCP_PMDAS_DIR  and  named  foo/ (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().

              Delete the entry for the DSO with domain 123.

              Delete the entry with a pathname to the DSO that matches 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).