Man Linux: Main Page and Category List


       mmv_stats_init - create and initialize Memory Mapped Value file


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

       void * mmv_stats_init(const char *name,
                      int cluster, mmv_stats_flags_t flags,
                      const mmv_metric_t *stats, int nstats,
                      mmv_indom_t *indoms, int nindoms);

       cc ... -lpcp_mmv -lpcp


       mmv_stats_init  creates and initializes the content of the MMV(4) file.

       The file is created in the $PCP_TMP_DIR/mmv directory, name argument is
       expected  to  be  just  a  name  of  the  file, not the full path.  The
       metadata content of the file does not change after the  file  has  been

       The old file is removed unconditionally unless there was an error.

       cluster is the preferred MMV PMDA cluster ID to be used for the metrics
       originating from  this  call  to  mmv_stats_init.   The  flags  provide
       additional  control  over  the  behaviour of the MMV PMDA - e.g. use of
       MMV_FLAG_PROCESS  will  ensure  values  are  only  exported  when   the
       instrumented  application is running - this is verified on each request
       for new values.

       stats is the array of mmv_metric_t  elements  of  length  nstats.  Each
       element of the array describes one PCP metric.

               typedef struct {
                   char name[MMV_NAMEMAX];     /* Name of the metric */
                   __uint32_t item;            /* Item component of PMID */
                   mmv_metric_type_t type;     /* Type of the metric */
                   mmv_metric_sem_t semantics; /* Semantics of the metric */
                   pmUnits dimension;          /* Dimensions (TIME,SPACE,etc) */
                   __uint32_t indom;           /* Instance domain identifier */
                   char *shorttext;            /* Optional, one-line help */
                   char *helptext;             /* Optional, full help text */
               } mmv_metric_t;

       If  indom  is  not  zero  and  not  PM_INDOM_NULL,  then the metric has
       multiple values and there must be a corresponding indom  entry  in  the
       indom list (uniquely identified by serial number).

       The  stats  array cannot contain any elements which have no name - this
       is considered an error and no metrics will be exported in this case.

       indoms is the array of mmv_indom_t elements  of  length  nindoms.  Each
       element of the array describes one PCP instance domain.

               typedef struct {
                   __int32_t internal;
                   char external[MMV_NAMEMAX];
               } mmv_instances_t;

               typedef struct {
                   __uint32_t serial;          /* Unique serial number */
                   __uint32_t count;           /* Number of instances */
                   mmv_instances_t *instances; /* Internal/external IDs */
                   char *shorttext;            /* Short help text */
                   char *helptext;             /* Long help text */
               } mmv_indom_t;


       The function returns the address of the memory mapped region on success
       or NULL on failure.


       mmv_inc_value(3), mmv_lookup_value_desc(3) and mmv(4).