PMNSMERGE(1)               General Commands Manual              PMNSMERGE(1)

NAME         top

       pmnsmerge - merge multiple versions of a Performance Co-Pilot PMNS

SYNOPSIS         top

       $PCP_BINADM_DIR/pmnsmerge [-adfxv] infile [...]  outfile

DESCRIPTION         top

       pmnsmerge merges multiple instances of a Performance Metrics Name
       Space (PMNS), as used by the components of the Performance Co-Pilot

       Each infile argument names a file that includes the root of a PMNS,
       of the form

                 root {
                     /* arbitrary stuff */

       The order in which the infile files are processed is determined by
       the presence or absence of embedded control lines of the form #define

       Files without a control line are processed first and in the order
       they appear on the command line.  The other files are then processed
       in order of ascending _DATESTAMP.

       The -a option suppresses the argument re-ordering and processes all
       files in the order they appear on the command line.

       The merging proceeds by matching names in PMNS, only those new names
       in each PMNS are considered, and these are added after any existing
       metrics with the longest possible matching prefix in their names.
       For example, merging these two input PMNS

                 root {                    root {
                                               surprise  1:1:3
                     mine       1:1:1          mine      1:1:1
                     foo                       foo
                     yours      1:1:2
                 }                         }
                 foo {                     foo {
                     fumble     1:2:1
                                               mumble    1:2:3
                     stumble    1:2:2          stumble   1:2:2
                 }                         }
                                           yawn {
                                               sleepy    1:3:1

       Produces the resulting PMNS in out.

                 root {
                     mine      1:1:1
                     yours     1:1:2
                     surprise  1:1:3
                 foo {
                     fumble    1:2:1
                     stumble   1:2:2
                     mumble    1:2:3
                 yawn {
                     sleepy    1:3:1

       To avoid accidental over-writing of PMNS files, outfile is expected
       to not exist when pmnsmerge starts.  The -f option allows an existing
       outfile to be unlinked (if possible) and truncated before writing

       Normally duplicate names for the same Performance Metric Identifier
       (PMID) in a PMNS are allowed.  The -d option is the default option
       and is included for backwards compatibility.  The -x option reverses
       the default and pmnsmerge will report an error and exit with a non-
       zero status if a duplicate name is found for a PMID in any of the
       input PMNS files or in the merged output PMNS.

       The -v option produces one line of diagnostic output as each infile
       is processed.

       Once all of the merging has been completed, pmnsmerge will attempt to
       load the resultant namespace using pmLoadASCIINameSpace(3) - if this
       fails for any reason, outfile will still be created, but pmnsmerge
       will report the problem and exit with non-zero status.

       Using pmnsmerge with a single input argument allows that PMNS file to
       be checked.  In addition to syntactic checking, specifying -x will
       also enable a check for duplicate names for all PMIDs.

CAVEAT         top

       Once the writing of the new outfile file has begun, the signals
       SIGINT, SIGHUP and SIGTERM will be ignored to protect the integrity
       of the new file.


       Environment variables with the prefix PCP_ are used to parameterize
       the file and directory names used by PCP.  On each installation, the
       file /etc/pcp.conf contains the local values for these variables.
       The $PCP_CONF variable may be used to specify an alternative
       configuration file, as described in pcp.conf(5).

SEE ALSO         top

       pmnsadd(1), pmnsdel(1), pmLoadASCIINameSpace(3), pcp.conf(5),
       pcp.env(5) and pmns(5).

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 ⟨git://⟩ on 2017-03-13.  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

Performance Co-Pilot                 PCP                        PMNSMERGE(1)