pmLoadASCIINameSpace — establish a local PMNS for an application
C Synopsis
#include <pcp/pmapi.h>
int pmLoadASCIINameSpace(const char *filename, int dupok);
cc ... -lpcp
Description
If the application wants to force using a local Performance Metrics Name Space (PMNS) instead of a distributed PMNS then it must load the PMNS using pmLoadASCIINameSpace or pmLoadNameSpace(3). If the application wants to use a distributed PMNS, then it should NOT make a call to load the PMNS explicitly.
Most applications using a Performance Metrics Application Programming Interface (PMAPI) context (of any type, so PM_CONTEXT_HOST or PM_CONTEXT_ARCHIVE or PM_CONTEXT_LOCAL) should not need to call pmLoadASCIINameSpace.
The filename argument designates the PMNS of interest. For applications not requiring a tailored PMNS, the special value PM_NS_DEFAULT may be used for filename, to force the default local PMNS to be loaded.
The default local PMNS is found in the file $PCP_VAR_DIR/pmns/root unless the environment variable PMNS_DEFAULT is set, in which case the value is assumed to be the pathname to the file containing the default local PMNS.
pmLoadASCIINameSpace is a variant of pmLoadNameSpace(3) in which the dupok argument may be used to control the handling of multiple names in the PMNS that may be associated with a single Performance Metric Identifier (PMID). A value of 0 disallows duplicates, any other value allows duplicates and the latter is the default behaviour of pmLoadNameSpace(3) as of Version 3.10.3 of PCP.
The other difference is that when pmLoadASCIINameSpace is used and filename is not PM_NS_DEFAULT, the PMNS file will always be pre-processed with pmcpp(1) as described in PMNS(5). This allows a PMNS file that contains C-style comments, pre-processor directives or macros to be processed correctly before the PMNS is parsed.
pmLoadASCIINameSpace returns zero on success.
Files
- $PCP_VAR_DIR/pmns/root
the default local PMNS, when the environment variable PMNS_DEFAULT is unset
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). Values for these variables may be obtained programmatically using the pmGetConfig(3) function.
See Also
PMAPI(3), pmGetConfig(3), pmLoadNameSpace(3), pmTrimNameSpace(3), pcp.conf(5), pcp.env(5) and PMNS(5).
Diagnostics
Syntax and other errors in the parsing of the PMNS are reported on stderr with a message of the form “Error Parsing ASCII PMNS: ...”.
PM_ERR_DUPPMNS
It is an error to try to load more than one PMNS, or to call either pmLoadASCIINameSpace and/or pmLoadNameSpace(3) more than once.
PM_ERR_PMNS
Syntax error in an ASCII format PMNS.
Referenced By
PCPIntro(3), PMAPI(3), pmcpp(1), pmGetChildren(3), pmGetChildrenStatus(3), pmGetPMNSLocation(3), pmLoadNameSpace(3), pmNameAll(3), pmNameID(3), PMNS(5), pmnsmerge(1), pmTrimNameSpace(3), pmUnloadNameSpace(3).
The man page pmloadasciinamespace(3) is an alias of pmLoadASCIINameSpace(3).