pmiAddMetric(3) — Linux manual page


PMIADDMETRIC(3)           Library Functions Manual           PMIADDMETRIC(3)

NAME         top

       pmiAddMetric - add a new metric definition to a LOGIMPORT context

C SYNOPSIS         top

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

       int pmiAddMetric(const char *name, pmID pmid, int type,
               pmInDom indom, int sem, pmUnits units);

       cc ... -lpcp_import -lpcp

Perl SYNOPSIS         top

       use PCP::LogImport;

       pmiAddMetric($name, $pmid, $type, $indom, $sem, $units);

DESCRIPTION         top

       As part of the Performance Co-Pilot Log Import API (see
       LOGIMPORT(3)), pmiAddMetric is used to define a new metric.  The
       metric's name must follow the naming conventions described in
       PCPIntro(1) and should be unique for each LOGIMPORT context.

       The other arguments are in effect the fields of a pmDesc structure.
       Refer to pmLookupDesc(3) for a complete description of the values and
       semantics of the components of this structure, and hence the valid
       argument values for pmiAddMetrics.

       The internal identifier for the metric may be given using the pmid
       argument and must be unique for each LOGIMPORT context.  The value
       for pmid which would typically be constructed using the pmID_build
       macro, e.g. pmID_build(PMI_DOMAIN, 0, 3) for the fourth metric in
       first ``cluster'' of metrics in the Performance Metrics Domain
       PMI_DOMAIN (which is the default for all meta data created by the
       LOGIMPORT library).  Alternatively, pmid may be PM_IN_NULL and
       pmiAddMetric will assign a unique pmid (although this means the pmid
       remains opaque and the application must use pmiPutValue(3) or
       pmiPutValueHandle(3) and cannot use pmiPutResult(3) to add data
       values to the PCP archive).

       type defines the data type of the metric and must be one of the
       PM_TYPE_...  values defined in <pcp/import.h>.

       The instance domain for the metric is defined by indom and may be
       PM_INDOM_NULL for a metric with a singular value, else the value for
       indom would normally be constructed using the pmInDom_build macro,
       e.g. pmInDom_build(LOGIMPORT,0) for the first instance domain in the
       Performance Metrics Domain LOGIMPORT (which is the default for all
       meta data created by the LOGIMPORT library).  Multiple metrics can
       share the same instance domain if they have values for a similar (or
       more usually, identical) set of instances.

       The semantics of the metric (counter, instantaneous value, etc.) is
       specified by the sem argument which would normally be the result of a
       call to the convenience constructor method pmiUnits(3).

DIAGNOSTICS         top

       pmiAddMetric returns zero on success else a negative value that can
       be turned into an error message by calling pmiErrStr(3).

SEE ALSO         top

       PCPIntro(1), LOGIMPORT(3), pmiErrStr(3), pmiPutResult(3),
       pmiPutValue(3), pmiPutValueHandle(3), pmiPutText(3), pmiPutLabel(3),
       pmiUnits(3) and pmLookupDesc(3).

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.
       Information about the project can be found at ⟨⟩.
       If you have a bug report for this manual page, send it to  This page was obtained from the project's upstream
       Git repository ⟨⟩ on
       2020-11-01.  (At that time, the date of the most recent commit that
       was found in the repository was 2020-10-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

Performance Co-Pilot                                         PMIADDMETRIC(3)

Pages that refer to this page: sheet2pcp(1)logimport(3)LOGIMPORT(3)pmiaddinstance(3)pmiAddInstance(3)pmigethandle(3)pmiGetHandle(3)pmiID(3)pmiInDom(3)pmiputlabel(3)pmiPutLabel(3)pmiputmark(3)pmiPutMark(3)pmiputresult(3)pmiPutResult(3)pmiputtext(3)pmiPutText(3)pmiputvalue(3)pmiPutValue(3)pmiputvaluehandle(3)pmiPutValueHandle(3)pmistart(3)pmiStart(3)pmiunits(3)pmiUnits(3)pmiwrite(3)pmiWrite(3)