заполнить структуры pmdaLabelSet метками метрик (fill pmdaLabelSet structures with metric labels)
Имя (Name)
pmdaLabel
, pmdaSetLabelCallBack
- fill pmdaLabelSet structures
with metric labels
Синопсис C (C Synopsis)
#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)
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
label(s) for an individual instance inst of a given instance
domain, indom. Its successful return code differs significantly
to pmdaLabel
, as described below.
Предостережение (Caveat)
The PMDA must be using PMDA_PROTOCOL_7
or later, as specified in
the call to pmdaDSO(3) or pmdaDaemon(3).
Диагностика (Diagnostic)
On success pmdaLabel
returns the number of label sets created.
This is usually zero or one, except in the case of
PM_LABEL_INSTANCES
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
number 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)
pminfo(1), malloc(3), PMAPI(3), PMDA(3), pmdaDaemon(3),
pmdaDSO(3), pmdaInit(3) and pmLookupLabels(3).