NAME |C SYNOPSIS |DESCRIPTION |RETURN VALUES |SEE ALSO |COLOPHON | |
MMV_STATS_INIT(3) Library Functions ManualMMV_STATS_INIT(3)mmv_stats_init,mmv_stats2_init- create and initialize Memory Mapped Value file
#include <pcp/pmapi.h>#include <pcp/mmv_stats.h>void *mmv_stats_init(const char *name, intcluster,mmv_stats_flags_tflags,const mmv_metric_t *stats, intnstats,mmv_indom_t *indoms, intnindoms);void *mmv_stats2_init(const char *name, intcluster,mmv_stats_flags_tflags,const mmv_metric2_t *stats2, intnstats2,mmv_indom2_t *indoms2, intnindoms2);cc ... -lpcp_mmv -lpcp
Note: these functions are deprecated - see mmv_stats_registry(3).mmv_stats_initcreates and initializes the content of theMMV(5) file, returning a handle that is used in subsequent MMV API calls.mmv_stats2_initis equivalent tommv_stats_initexcept that it provides an option for longer metric and instance names.mmv_stats_stopperforms an orderly shutdown of the mapping handle returned by an earlier initialization call. The file is created in the $PCP_TMP_DIR/mmv directory,name argu‐ ment is expected to be a basename 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 tommv_stats_init. Theflags 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 ofmmv_metric_telements of lengthnstats. 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;stats2 is the array ofmmv_metric2_telements of lengthnstats2. Each element of the array describes one PCP metric, the only dif‐ ference tostats is the lifting of the restriction on name length (previously MMV_NAMEMAX, which is 64 bytes). typedef struct { char *name; /* 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_metric2_t; Ifindomis not zero and not PM_INDOM_NULL, then the metric has multiple values and there must be a correspondingindom entry in theindom list (uniquely identified byserialnumber). Thestats andstats2 arrays cannot contain any elements which have no name - this is considered an error and no metrics will be ex‐ ported in this case.indoms is the array ofmmv_indom_telements of lengthnindoms. 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;indoms2 is the array ofmmv_indom2_telements of lengthnindoms2. Each element of the array describes one PCP instance domain, and the only difference toindoms is the lifting of the restriction on external instance name lengths (previously MMV_NAMEMAX, which is 64 bytes). typedef struct { __int32_t internal; char *external; } mmv_instances2_t; typedef struct { __uint32_t serial; /* Unique serial number */ __uint32_t count; /* Number of instances */ mmv_instances2_t *instances; /* Internal/external IDs */ char *shorttext; /* Short help text */ char *helptext; /* Long help text */ } mmv_indom2_t;These functions return the address of the memory mapped region on success. On failure, NULL is returned anderrno is set to a value suitable for decoding withstrerror(3).
mmv_stats_registry(3),mmv_lookup_value_desc(3),mmv_inc_value(3),strerror(3) andmmv(5).
This page is part of thePCP (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-08-11. (At that time, the date of the most recent commit that was found in the repository was 2025-08-11.) 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 isnot part of the original manual page), send a mail to man-pages@man7.orgPerformance Co-PilotMMV_STATS_INIT(3)Pages that refer to this page:pmdammv(1), mmv_inc_value(3), mmv_lookup_value_desc(3), mmv_set_value(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |