NAME
pmnsmerge - merge multiple versions of a Performance Co-Pilot PMNS
SYNOPSIS
$PCP_BINADM_DIR/pmnsmerge [-adfv] infile [...] outfile
DESCRIPTION
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 forces the removal of
outfile (if it exists), before the check is made.
The -d option allows the resultant PMNS to optionally contain duplicate
PMIDs with different names in the PMNS. By default this condition is
considered an error.
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
compile the resultant namespace using pmnscomp(1) - if this fails for
any reason, outfile will still be created, but pmnsmerge will report
the problem and exit with non-zero status.
CAVEAT
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.
PCP ENVIRONMENT
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(4).
SEE ALSO
pmnsadd(1), pmnscomp(1), pmnsdel(1), pcp.conf(4), pcp.env(4) and
pmns(4).