Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pmloadasciinamespace(3) [centos man page]

PMLOADASCIINAMESPACE(3) 				     Library Functions Manual					   PMLOADASCIINAMESPACE(3)

NAME
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. 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. 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 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 configura- tion 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. Performance Co-Pilot PCP PMLOADASCIINAMESPACE(3)

Check Out this Related Man Page

PMNS(5) 							File Formats Manual							   PMNS(5)

NAME
pmns - the performance metrics name space SYNOPSIS
$PCP_VAR_DIR/pmns DESCRIPTION
When using the Performance Metrics Programming Interface (PMAPI) of the Performance Co-Pilot (PCP), performance metrics are identified by an external name in a hierarchic Performance Metrics Name Space (PMNS), and an internal identifier, the Performance Metric Identifier (PMID). A PMNS specifies the association between a metric's name and its PMID. A PMNS is defined on one or more ASCII source files. Loading of a PMNS is done by calling pmLoadNameSpace(3) or pmLoadASCIINameSpace(3). By default duplicate PMIDs are not allowed in the PMNS, although pmLoadASCIINameSpace(3) provides an alternative interface with user- defined control over the processing of duplicate PMIDs in the PMNS. The external format for a PMNS conforms to the syntax and semantics described in the following sections. There is one default PMNS in the files below $PCP_VAR_DIR/pmns, although users and application developers are free to create and use alter- nate PMNS's. For an example of this, see the PCP Tutorial in $PCP_DEMOS_DIR/Tutorial. Although an application can call pmLoadNameSpace(3), normally this is only done directly for the -n command line option where an explicit root PMNS file is specified. Since PCP version 2 uses a distributed PMNS (see below), an application can extract PMNS information from a host's PMCD or an archive. If the PMNS source is a version 1 archive (see PCPIntro(1)), however, then the local PMNS will be loaded using the path specified by the environment variable PMNS_DEFAULT. DISTRIBUTED PMNS
In PCP version 1, the PMNS functions in the API all operated on a PMNS loaded locally from a file. Since PCP version 2, however, PMNS func- tions may get the PMNS information remotely from a PMCD or directly from the meta data of an archive. PROCESSING FRAMEWORK
The PMNS specification is initially passed through pmcpp(1). This means the following facilities may be used in the specification + C-style comments + #include directives + #define directives and macro substitution + conditional processing via #ifdef ... #endif, etc. When pmcpp(1) is executed, the ``standard'' include directories are the current directory and $PCP_VAR_DIR/pmns. SYNTAX
The general syntax for a non-leaf node in the PMNS is as follows pathname { name [pmid] ... } Where pathname is the full pathname from the root of the PMNS to this non-leaf node, with each component in the pathname separated by a ``.''. The root node for the PMNS must have the special name ``root'', but the common prefix ``root.'' must be omitted from all pathnames. Each component in the pathname must begin with an alphabetic character, and be followed by zero or more characters drawn from the alphabet- ics, the digits and the underscore ``_'') character. For alphabetic characters in a pathname component, upper and lower case are distin- guished. Non-leaf nodes in the PMNS may be defined in any order. The descendent nodes are defined by the set of names, relative to the pathname of their parent non-leaf node. For the descendent nodes, leaf nodes have a pmid specification, non-leaf nodes do not. The syntax for the pmid specification has been chosen to help manage the allocation of PMIDs across disjoint and autonomous domains of administration and implementation. Each pmid consists of 3 integer parts, separated by colons, e.g. 14:27:11. This hierarchic numbering scheme is intended to mirror the implementation hierarchy of performance metric domain, metrics cluster (data structure or operational similarity) and individual metric. In practice, the two leading components are likely to be macros in the PMNS specification source, and pmcpp(1) will convert the macros to integers. These macros for the initial components of the pmid are likely to be defined either in a standard include file, e.g. $PCP_VAR_DIR/pmns/stdpmid, or in the current source file. To support dynamic metrics, where the existence of a metric is known to a PMDA, but not visible in the PMNS, a variant syntax for the pmid is supported, namely a domain number followed by asterisks for the other components of the pmid, e.g. 14:*:*. The corresponding metric name forms the root of a subtree of dynamic metric names defined in the corresponding PMDA as identified by the domain number. The current allocation of the high-order (PMD or domain) component of PMIDs is as follows. +--------+--------------------------------------+ | Range | Allocation | +--------+--------------------------------------+ | 0 | reserved | +--------+--------------------------------------+ | 1-31 | PMDAs from the PCP base product | +--------+--------------------------------------+ | 32-39 | Oracle | +--------+--------------------------------------+ | 40-47 | Sybase | +--------+--------------------------------------+ | 48-55 | Informix | +--------+--------------------------------------+ | 56-58 | SNMP Gateway PMDA | +--------+--------------------------------------+ | 59-63 | Linux PMDAs | +--------+--------------------------------------+ | 64-69 | ISV PMDAs | +--------+--------------------------------------+ | 70-128 | more PMDAs from the PCP base product | +--------+--------------------------------------+ |129-510 | End-user PMDAs and demo PMDAs | +--------+--------------------------------------+ | 511 | RESERVED | +--------+--------------------------------------+ EXAMPLE
#define KERNEL 1 #define FOO 317 root { network cpu dynamic FOO:*:* } #define NETWORK 26 network { intrate KERNEL:NETWORK:1 packetrate } network.packetrate { in KERNEL:NETWORK:35 out KERNEL:NETWORK:36 } #define CPU 10 cpu { syscallrate KERNEL:CPU:10 util } #define USER 20 #define SYSTEM 21 #define IDLE 22 cpu.util { user KERNEL:CPU:USER sys KERNEL:CPU:SYSTEM idle KERNEL:CPU:IDLE } SEE ALSO
PCPIntro(1), pmcd(1), pmcpp(1), PCPIntro(3), PMAPI(3), pmErrStr(3), pmGetConfig(3), pmLoadASCIINameSpace(3), pmLoadNameSpace(3), pcp.conf(5) and pcp.env(5). Performance Co-Pilot PCP PMNS(5)
Man Page