pmdaattribute(3) — Linux manual page

NAME | C SYNOPSIS | DESCRIPTION | CAVEAT | DIAGNOSTICS | SEE ALSO | COLOPHON

PMDAATTRIBUTE(3)         Library Functions Manual        PMDAATTRIBUTE(3)

NAME         top

       pmdaAttribute - informs a PMDA about client connection attributes

C SYNOPSIS         top

       #include <pcp/pmapi.h>
       #include <pcp/pmda.h>

       int pmdaAttribute(int context, int key, char *value, int length,
                         pmdaExt *pmda);

       cc ... -lpcp_pmda -lpcp

DESCRIPTION         top

       As  part  of  the Performance Metrics Domain Agent (PMDA) API (see
       PMDA(3)), pmdaAttribute is the generic callback for responding  to
       client  connection  attributes.   These  attributes include client
       credential information, such as user ID and group ID.

       A PMDA that supports connection attributes will provide a  private
       pmdaAttribute  callback  by assignment to version.six.attribute of
       the pmdaInterface structure, and implement custom logic for any of
       the attribute key-value pairs of interest to it.

       All attributes are associated with a specific client context,  and
       these  can  be  uniquely  identified using the ctx first argument.
       The PMDA should track client connections, and disconnections using
       the pmdaSetEndContextCallBack(3)  interface,  as  a  result.   The
       pmdaGetContext(3) interface may be particularly helpful also.

       All  attributes are passed as key-value pairs and the value is al‐
       ways passed as a null-terminated string of given length.  This in‐
       cludes numeric attributes like the user ID.

       The most commonly used attributes  would  be  PCP_ATTR_USERID  and
       PCP_ATTR_GROUPID but others may also be optionally passed (such as
       PCP_ATTR_USERNAME) if they are available.  Some attributes will be
       consumed  by  pmcd  and  never  through  passed  to PMDAs, such as
       PCP_ATTR_PASSWORD.  A complete list of all possible attributes can
       be found in the headers listed above, all are prefixed by  PCP_AT‐
       TR.

CAVEAT         top

       The  PMDA must be using PMDA_INTERFACE_6 or later, as specified in
       the call to pmdaDSO(3) or pmdaDaemon(3).

DIAGNOSTICS         top

       pmdaAttribute should return either zero on success, or a  negative
       return  code to indicate an error in handling the attribute.  This
       return code cannot be used to indicate a client should  be  disal‐
       lowed  access  - such functionality must be performed by the agent
       in response  to  callbacks  for  the  client  in  question  (using
       PM_ERR_PERMISSION  for those specific callbacks, for that specific
       client.  In other words, errors will be  be  passed  to  PMCD  but
       there  is  no  guarantee made that the error will be return to the
       client and result in termination of the client, for example.

SEE ALSO         top

       PMAPI(3),  PMDA(3),  pmdaDaemon(3),  pmdaDSO(3),  pmdaMain(3)  and
       pmdaGetContext(3).

COLOPHON         top

       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               PCP                   PMDAATTRIBUTE(3)

Pages that refer to this page: pmdamain(3)