# pmnsadd

## NAME



           **pmnsadd** - add new names to the Performance Co-Pilot PMNS
    


## SYNOPSIS



           **$PCP_BINADM_DIR/pmnsadd**[**-?**]  [**-n** _namespace_] _file_
    


## DESCRIPTION



           pmnsmerge(1) performs the same function as **pmnsadd** and is faster,
           more robust and more flexible.  It is therefore recommended that
           pmnsmerge(1) be used instead.
    
           **pmnsadd** adds subtree(s) of new names into a Performance Metrics
           Name Space (PMNS), as used by the components of the Performance
           Co-Pilot (PCP).
    
           Normally **pmnsadd** operates on the default Performance Metrics Name
           Space (PMNS), however if the **-n** option is specified an alternative
           namespace is used from the file _namespace_.
    
           The default 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 PMNS.
    
           The new names are specified in the _file_ , arguments and conform to
           the syntax for PMNS specifications, see PMNS(5).  There is one
           PMNS subtree in each _file_ , and the base PMNS pathname to the
           inserted subtree is identified by the first group named in each
           _file_ , e.g. if the specifications begin
    
                     myagent.foo.stuff {
                         mumble    123:45:1
                         fumble    123:45:2
                     }
    
           then the new names will be added into the PMNS at the non-leaf
           position identified by myagent.foo.stuff, and following all other
           names with the prefix myagent.foo.
    
           The new names must be contained within a single subtree of the
           namespace.  If disjoint subtrees need to be added, these must be
           packaged into separate files and **pmnsadd** used on each, one at a
           time.
    
           All of the files defining the PMNS must be located within the
           directory that contains the root of the PMNS, this would typically
           be **$PCP_VAR_DIR/pmns** for the default PMNS, and this would
           typically imply running **pmnsadd** as root.
    
           As a special case, if _file_ contains a line that begins root { then
           it is assumed to be a complete PMNS that needs to be merged, so
           none of the subtree extraction and rewriting is performed and _file_
           is handed directly to pmnsmerge(1).
    
           Provided some initial integrity checks are satisfied, **pmnsadd** will
           update the PMNS using pmnsmerge(1) - if this fails for any reason,
           the original namespace remains unchanged.
    


## OPTIONS



           The available command line options are:
    
           **-n** _pmnsfile_
                Load an alternative Performance Metrics Name Space (PMNS(5))
                from the file _pmnsfile_.
    
           **-?** Display usage message and exit.
    


## CAVEATS



           Once the writing of the new _namespace_ file has begun, the signals
           SIGINT, SIGHUP and SIGTERM will be ignored to protect the
           integrity of the new files.
    


## FILES



           _$PCP_VAR_DIR/pmns/root_
                the default 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).
    


* * *