pmdalabel(3) — Linux manual page

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

PMDALABEL(3)             Library Functions Manual            PMDALABEL(3)

NAME         top

       pmdaLabel, pmdaSetLabelCallBack - fill pmLabelSet structures with
       metric labels

C SYNOPSIS         top

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

       int pmdaLabel(int ident, int type, pmLabelSet **sets, pmdaExt
               *pmda);
       int pmdaSetLabelCallBack(pmdaInterface *dispatch,
               pmdaLabelCallBack callback);

       cc ... -lpcp_pmda -lpcp

DESCRIPTION         top

       As  part  of  the Performance Metrics Domain Agent (PMDA) API (see
       PMDA(3)), pmdaLabel uses the standard PMDA(3) data  structures  to
       return  the labels for performance domain, instance domain, metric
       or individual instances in "JSONB" format in the given  sets  data
       structure.

       The  type  argument determines the interpretation of ident and the
       requested form of label, as follows:

       PM_LABEL_DOMAIN
           when ident is a PMDA domain identifier,

       PM_LABEL_CLUSTER
           when ident is a metric identifier and labels for the cluster
           containing that metric are being requested.

       PM_LABEL_ITEM
           when ident is a metric identifier,

       PM_LABEL_INDOM
           when ident is an instance domain identifier, or

       PM_LABEL_INSTANCES
           when ident is a metric identifier and labels for all instances
           of that metric are being requested.

       The label sets pointer must be initialised to NULL before calling
       pmdaLabel and space is only to be allocated when labels are
       present and returned.  In this case, the return code must indicate
       the number of label sets that have been allocated.  This will only
       ever be greater than one in the PM_LABEL_INSTANCES case.

       This is one of the few generic callbacks in libpcp_pmda (see
       PMDA(3)) that is incomplete, requiring a further pmdaLabelCallBack
       method of its own.  The additional callback should be registered
       using pmdaSetLabelCallBack and the pmdaLabelCallBack method has
       the following prototype:
       int func(pmInDom indom, unsigned int inst, pmLabelSet **set)

       The purpose of the pmdaLabelCallBack routine is to return the la‐
       bel(s) for an individual instance inst of a given instance domain,
       indom.  Its successful return code differs significantly to pmdaL‐
       abel, as described below.

CAVEAT         top

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

DIAGNOSTICS         top

       On success pmdaLabel returns the number of label sets created.
       This is usually zero or one, except in the case of PM_LABEL_IN‐
       STANCES where more than one label sets will often be returned, one
       for each instance of the requested metric.

       By contrast, on success of the pmdaLabelCallBack routine the num‐
       ber of labels successfully added to the provided labelset pointer
       must be returned (and not the total number of label sets).

       If labels for the requested entity could not be obtained due to a
       catastrophic failure, such as an out of memory condition, these
       routines will return a negative error code.

SEE ALSO         top

       pminfo(1), malloc(3), PMAPI(3), PMDA(3), pmdaDaemon(3),
       pmdaDSO(3), pmdaInit(3) and pmLookupLabels(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
       pcp@groups.io.  This page was obtained from the project's upstream
       Git repository ⟨https://github.com/performancecopilot/pcp.git⟩ on
       2025-02-02.  (At that time, the date of the most recent commit
       that was found in the repository was 2025-01-30.)  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 man-pages@man7.org

Performance Co-Pilot               PCP                       PMDALABEL(3)

Pages that refer to this page: pmdacache(3)pmdainstance(3)