The mmv PMDA exports instrumentation that has been added to an application using the MMV APIs (refer to mmv_stats_init (3) and mmv (5) for further details). These APIs can be called from several languages, including C, C++, Perl, Python, Java (via the separate ``Parfait'' class library) and GoLang (via the separate ``Speed'' library).
A brief description of the pmdammv command line options follows:
This communication occurs through memory mapped files in a location known to both pmdammv and the instrumented applications. That location is $PCP_TMP_DIR/mmv , although that is often hidden behind application APIs such as ``Parfait'' and mmv_stats_init (3). The permissions set on this directory indicate the security model in use.
The more secure method is to use an existing unprivileged group which is shared by instrumented applications, pmcd and pmdammv such as the "pcp" group.
# . /etc/pcp.env
# mkdir -m 775 $PCP_TMP_DIR/mmv
# chgrp pcp $PCP_TMP_DIR/mmv
Since this method requires instrumented applications to use this non-default group (see newgrp (1) and setgid (2)) a common alternative involves the use of a world-writeable $PCP_TMP_DIR/mmv directory with the sticky-bit set (similar to /tmp and /var/tmp , for example).
This allows any application, running under any user account, to communicate with the PMDA (which runs under the "pcp" account by default). This may not be desirable for all environments and one should consider the security implications of any directory setup like this (similar classes of issues exist as those that affect the system temporary file directories).
pmdammv is enabled by default on all modern PCP installations, and thus the names, help text and values for the mmv performance metrics are available without the usual PMDA ./Install process.
If no explicit security model has been selected (as described above), the ./Install script will create a world-writeable sticky-bit-set mmv directory for communication. This is for backwards compatibility, as well as ease of use - to use this, do the following as root:
# cd $PCP_PMDAS_DIR/mmv
# ./Install
This installation process will not overwrite any existing $PCP_TMP_DIR/mmv directory.
If you want to undo the installation, do the following as root:
# cd $PCP_PMDAS_DIR/mmv
# ./Remove
pmdammv is launched by pmcd and should never be executed directly. The Install and Remove scripts notify pmcd when the agent is installed or removed.