SYNOPSIS
$PCP_BINADM_DIR/pmnsmerge [-adfxv] infile [...] outfileDESCRIPTION
pmnsmerge merges multiple instances of a Performance Metrics Name Space (PMNS), as used by the components of the Performance Co-Pilot (PCP).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 _DATESTAMP YYYYMMDD
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 yawn 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 foo yours 1:1:2 surprise 1:1:3 yawn } 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 starts.
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.