pmLoadNameSpace — load a local PMNS for an application

C Synopsis

#include <pcp/pmapi.h>

int pmLoadNameSpace(const char *filename);

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 pmLoadNameSpace or pmLoadASCIINameSpace(3). If the application is 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 pmLoadNameSpace.

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.

Externally a PMNS is stored in an ASCII format as described in PMNS(5). However, note that pmLoadNameSpace assumes filename does not contain any C-style comments, pre-processor directives or macros; if this is not the case, pmLoadASCIINameSpace(3) should be used instead.

As of Version 3.10.3 of PCP, by default, multiple names in the PMNS are allowed to be associated with a single Performance Metrics Identifier (PMID) and this is unconditionally allowed by pmLoadNameSpace. pmLoadASCIINameSpace(3) provides an alternative interface with user-defined control over the handling of duplicate names for the same PMID in the PMNS.

pmLoadNameSpace 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), pmLoadASCIINameSpace(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 and load more than one PMNS, or to call either pmLoadNameSpace and/or pmLoadASCIINameSpace(3) more than once.

PM_ERR_PMNS

Syntax error in the PMNS file.

Referenced By

PCPIntro(1), PCPIntro(3), PMAPI(3), pmcpp(1), pmGetChildren(3), pmGetChildrenStatus(3), pmGetPMNSLocation(3), pmLoadASCIINameSpace(3), pmLookupName(3), pmNameAll(3), pmNameID(3), PMNS(5), pmTraversePMNS(3), pmTrimNameSpace(3), pmUnloadNameSpace(3).

The man page pmloadnamespace(3) is an alias of pmLoadNameSpace(3).

PCP Performance Co-Pilot