Provided by: libpcp-mmv1-dev_3.5.11_amd64 bug


       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 created.

       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

       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


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