PMNSMERGE(1)
β¨ PMNSMERGE π
okay so this is the pmnsmerge page from section 1 of the General Commands Manual, bestie. she's a PCP girlie. let's get into it π
π¦ NAME π¦
pmnsmerge β merge multiple versions of a Performance Co-Pilot PMNS. literally that's the whole job. no cap. π
π SYNOPSIS π
$PCP_BINADM_DIR/pmnsmerge [-adfxv] [-D debug] infile [...] outfile
πΈ DESCRIPTION πΈ
so pmnsmerge merges multiple instances of a Performance Metrics Name Space (PMNS), which is the thing the components of the Performance Co-Pilot (PCP) use. iconic behaviour honestly β¨
every infile argument names a file that includes the root of a PMNS, and it looks like this:
root {
/* arbitrary stuff */
}
the order the infile files get processed in? that's determined by whether or not there's an embedded control line chillin' in there, of this form:
#define _DATESTAMP YYYYMMDD
files with no control line get processed first, in the order they show up on the command line. then the other files get processed in order of ascending _DATESTAMP. periodt.
the -a option suppresses that argument re-ordering and just processes all the files in the order they appear on the command line. no re-sorting, we're going in raw order π
the merging itself? it proceeds by matching names in PMNS. only the new names in each PMNS are considered, and those get added after any existing metrics with the longest possible matching prefix in their names. okay so, 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 accidentally over-writing PMNS files (π the horror), 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. so like, consent first, or force it. π
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. she's strict now, she's a bouncer π«
the -v option produces one line of diagnostic output as each infile is processed. little running commentary, we love a narrator π¬
once all of the merging has been completed, pmnsmerge will attempt to load the resultant namespace using pmLoadASCIINameSpace(3) β and if this fails for any reason, outfile will still be created, but pmnsmerge will report the problem and exit with non-zero status. so like, the file's there, but she's telling you it's giving problems. π
using pmnsmerge with a single input argument lets that PMNS file be checked. and in addition to syntactic checking, specifying -x will also enable a check for duplicate names for all PMIDs. self-care is checking your PMNS π
π OPTIONS π
the available command line options are:
-aβ process files in command line order. no re-ordering bestie π«-d,--dupokβ allow duplicate metric names per PMID. this is the default β¨-f,--forceβ overwrite output file if it already exists π-v,--verboseβ verbose input processing, she's chatty π£-x,--nodupsβ do not allow duplicate metric names per PMID π«-?,--helpβ display usage message and exit π«Ά
β οΈ CAVEATS β οΈ
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. like she's locking the door mid-glow-up, do not interrupt her π
π
π 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(5). β¨
π DEBUGGING OPTIONS π
the -D or --debug option enables the output of additional diagnostics on stderr to help triage problems, although ngl the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. debug is a comma separated list of debugging options; use pmdbg(1) with the -l option to obtain a list of the available debugging options and their meaning ππ
π SEE ALSO π
pmnsadd(1), pmnsdel(1), pmLoadASCIINameSpace(3), pcp.conf(5), pcp.env(5) and PMNS(5). go read your sisters π
okay that's the whole page, and for the sign-off: this one's from the Performance Co-Pilot crew, it's part of PCP, and it lives as PMNSMERGE(1) β same family, section 1, that's the vibe. no date on this footer bestie, she's timeless πβ¨ slay, go merge something π
π¦ where this page comes from
- arch rolling: pcp 7.2.2-2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0
- fedora 43: pcp-doc 7.2.1-1.fc43
- fedora 43: pcp-doc 7.2.2-1.fc43
- fedora 43: pcp-doc 7.2.2-2.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: pcp-doc 7.2.1-1.fc44
- fedora 44: pcp-doc 7.2.2-1.fc44
- fedora 44: pcp-doc 7.2.2-2.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- ubuntu stonking: pcp 7.2.1-2build1
- Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms