Provided by: pcp-manager_3.10.8build1_amd64 bug

NAME

       pmmgr - pcp daemon manager

SYNOPSIS

       pmmgr [-v] [-c config-directory] [-p polling-interval] [-l log-file]

DESCRIPTION

       pmmgr  manages  a  collection  of  PCP daemons for a set of discovered local and remote hosts running the
       Performance Metrics Collection Daemon (PMCD), according to zero or more  configuration  directories.   It
       keeps a matching set of pmlogger and/or pmie daemons running, and their archives/logs merged/rotated.  It
       supplants the older pmlogger_* and pmie_* check/daily management shell scripts.

       pmmgr  is  largely  self-configuring  and  perseveres  despite  most  run-time errors.  pmmgr runs in the
       foreground until interrupted.  When signaled, it will stop its running daemons before exiting.

       A description of the command line options specific to pmmgr follows:

       -c   directory adds a given configuration directory to pmmgr.  pmmgr  can  supervise  multiple  different
            configurations  at  the  same time.  Errors in the configuration may be noted to standard error, but
            pmmgr  will  fill  in  missing  information  with  built-in  defaults.   The  default  directory  is
            $PCP_SYSCONF_DIR/pmmgr

       -p   polling-interval  sets  the  host-discovery  polling  interval  to the given number of seconds.  The
            default is 60.  Daemons for a particular target host will be restarted no more frequently than  this
            interval.

       -l   log-file redirects standard output & error to the given log file, which is created anew

       -v   adds more verbose tracing to standard output.

CONFIGURATION

       A  pmmgr configuration identifies which hosts should be monitored, which daemons should be maintained for
       them, and what options those daemons should be run with.  pmmgr  uses  a  small  number  of  files  in  a
       configuration  directory, instead of lines in a text file.  The individual files carry zero or more lines
       of 100% pure configuration text, and no comments.  (If desired, a configuration  may  be  commented  upon
       with any other file, such as a free-form README.)

   TARGET SELECTION
       This  set of configuration files identifies where pmmgr should search for pmcd instances, how to uniquely
       identify them, and where state such as log files should be kept for each.  Ideally, a persistent & unique
       host-id string is computed for each potential target pmcd from specified metric values.  This host-id  is
       also used as a subdirectory name for locating daemon data.

       hostid-metrics
              This  file  contains  one  or  more  lines  of  metric  specifications  in  the format accepted by
              pmParseMetricSpec.  Metrics without instance specifiers mean all instances of that metric.   These
              are  used  to  generate the unique host-id string for each pmcd server that pmmgr discovers.  Upon
              discovery,  all  the  metrics/instances  named   are   queried,   string   values   fetched,   and
              normalized/concatenated  into  a  single  hyphenated  printable string.  The default is the single
              metric pmcd.hostname, which is sufficient if all the hosts discovered have unique hostname(2).  If
              they don't, you should add other pcp metric specifications to set them apart at  your  site.   The
              more  you  add,  the longer the host-id string, but the more likely that accidental duplication is
              prevented.

              However, it may be desirable for a host-id to also be persistent, so that if the target host  goes
              offline  and  later  returns,  the  new host-id matches the previous one, because then old and new
              histories can be joined.  This argues against using metrics whose values vary from boot to boot.

              Some        candidate        metrics        to        consider:         network.interface.hw_addr,
              network.interface.inet_addr["eth0"], network.interface.ipv6_addr, kernel.uname.nodename

       log-directory
              This  file contains the path of a directory beneath which the per-host-id subdirectories are to be
              created by pmmgr.  If it is not a full path,  it  is  implicitly  relative  to  the  configuration
              directory itself.  The default is $PCP_LOG_DIR/pmmgr/.

       target-host
              This  file  contains  one  or  more lines containing pmcd host specifications, as described on the
              PCPintro(1) man page.  Each poll interval,  pmmgr  will  attempt  to  make  a  brief  pmNewContext
              connection  to the host to check liveness.  It is not a problem if more than one specification for
              the same host is listed, because the host-id processing  eliminates  duplicates,  and  chooses  an
              arbitrary specification among them.  The default is to target pmcd at local:.

       target-discovery
              This  file  contains  one or more lines containing specifications for the pmDiscoverServices PMAPI
              call, each of which may map onto a fluctuating set of local or remote  pmcd  servers.   Each  poll
              interval, pmmgr will attempt to rerun discovery with all of the given specifications.  Again it is
              not  a  problem  if more than one specification matches the same actual pmcd: one confirmed access
              path  is  arbitrarily  selected.   The  default  is  to  do  no  discovery.   Consider   including
              avahi,timeout=5  to rely in pmcd self-announcements on the local network (searching for up to five
              seconds each time).

       subtarget-containers
              If this file exists, pmmgr will scan each host that is found for  running  containers.   For  each
              running  container,  it  will  create  independent subtargets for running pmlogger instances.  The
              host-id string for these subtargets is the host's host-id string,  followed  by  a  double-hyphen,
              then  the  full  unique  container  instance-name  string.   (Temporarily,  pmie instances are not
              attempted for these subtargets, due to PCP bug PR1105.)

       log-subdirectory-gc
              This file may  contain  a  time  interval  specification  as  per  the  PCPintro  man  page.   All
              subdirectories  of  the  log-directory  are  presumed to contain data for pmmgr-monitored servers.
              Those that have not been touched (in the  stat/mtime  sense)  in  at  least  that  long,  and  not
              associated  with  a currently monitored target, are deleted entirely.  This value should be longer
              than the longest interval that pmmgr normally recreates archives (such as due to  pmmgr  restarts,
              and pmlogmerge intervals).  The default value is 90days.

   PMLOGGER CONFIGURATION
       This  group  of  configuration  options  controls  a  pmlogger  daemon  for  each host.  This may include
       generating its configuration, and managing its archives.

       pmlogger
              If and only if this file exists, pmmgr will maintain a pmlogger daemon  for  each  targeted  host.
              This  file  contains  one  line of additional space-separated options for the pmie daemon.  (pmmgr
              already adds -h, -f, -r, -l, and perhaps -c.)  The default is to  maintain  no  pmlogger  (and  no
              other configuration in this section is processed).

       pmlogconf
              If  and  only  if  this file exists, pmmgr will run pmlogconf to generate a configuration file for
              each target pmcd.  The file contains one  line  of  space-separated  additional  options  for  the
              pmlogconf   program.    pmlogconf's   generated   output   file   will   be   stored   under   the
              log-directory/hostid subdirectory.  (pmmgr already adds -c,  -r,  and  -h.)   The  default  is  no
              pmlogconf,  so  instead, the pmlogger file above should probably contain a -c option, to specify a
              fixed pmlogger configuration.

   ARCHIVE LOG MANAGEMENT
       Default pmlogger configurations can collect tens of megabytes  of  data  per  day  (possibly  split  into
       multiple  archives),  per  target  host.   If your disk space is less than infinite, or archive-splitting
       unwieldy, this should  be  managed.   In  the  default,  unmanaged  case,  the  system  administrator  is
       responsible  for managing the individual archive-* files from the per-host logging subdirectories.  pmmgr
       offers several other options, each representing different performance / usability tradeoffs.

   ARCHIVE LOG MANAGEMENT - pmlogmerge
       This style of archive log management regularly creates a single merged archive from  prior  archives  for
       each  target  host, in effect lopping off old data and appending the new.  A single merged archive can be
       relatively large (defaults to approximately 100-400 MB per host), and puts a corresponding  I/O  load  on
       storage,  but  is most convenient for a detailed long-timeframe analysis.  Once pmlogger is restarted, it
       always creates a new archive, so in the steady state, there will be one merged archive of recent history,
       and one current archive being written-to by pmlogger.

       pmlogmerge
              If this file exists, pmmgr will run pmlogextract to periodically merge  together  preexisting  log
              archives  for  each  target  pmcd into a single large one.  Then, the preexisting log archives are
              deleted (including any prior merged ones).  This configuration file may contain  a  time  interval
              specification as per the PCPintro man page, representing the period after which pmlogger should be
              temporarily  stopped,  and  archives  merged.   It  represents the maximum amount of time that the
              merged archive lags the present time. The default is 24hours.

       pmlogmerge-granular
              If this file exists, pmmgr will merge only a subset of preexisting log archives into the new  one,
              instead  of  all  of  them,  so as to approximate a granular, aligned set of merged archives.  The
              subset chosen corresponds to the previous time interval specified by the pmlogmerge control  file.
              The default is no granularity.

       pmlogmerge-rewrite
              If  this  file exists, pmmgr will run pmlogrewrite -i (plus any other options listed in this file)
              on each input archive before merging it.  This will naturally require more disk I/O.  The  default
              is no rewriting.

       pmlogmerge-retain
              pmmgr reduces/deletes any original-resolution archives after a time period specified by this file,
              as  measured  by  the  file  mtime.   The period will also be passed to pmlogextract as a negative
              parameter to -S.  The default is 14days.  To store archives indefinitely,  set  this  to  a  large
              quantity like "99999weeks".

       pmlogreduce
              If  this  file  exists,  then  prior  to  removing archives that expire past the pmlogmerge-retain
              period, they are processed with pmlogreduce to create reduced archives (named reduced-*).  If  the
              file contains space-separated options, they are passed onto pmlogreduce.  (By default, pmlogreduce
              downsamples to a 600-second interval.)

       pmlogreduce-retain
              If this file exists, then reduced archives (identified by the reduced-* pattern) are deleted after
              a  time period specified by this file, as measured from the file mtime.  Since this time is likely
              that of the pmlogreduce run, the total retention time will be approximately the  pmlogmerge-retain
              time  plus  the  pmlogreduce-retain  time.   The  default  is  90days.   To store reduced archives
              indefinitely, set this to a large quantity like "99999weeks".

   PMIE CONFIGURATION
       This group of configuration options controls a pmie daemon for each host.  This may include generating  a
       custom configuration.

       pmie   If  and  only if this file exists, pmmgr will maintain a pmie daemon for each targeted pmcd.  This
              file contains one line of additional space-separated options for the pmie daemon.  (pmmgr  already
              adds  -h, -f, -l, and perhaps -c.)  The default is to maintain no pmie (and no other configuration
              in this section is processed).

       pmieconf
              If and only if this file exists, pmmgr will run pmieconf to generate a configuration file for each
              target pmcd.  The file  contains one line of space-separated additional options for  the  pmieconf
              program.   pmieconf's  generated  output  file  will  be  stored  under  the  log-directory/hostid
              subdirectory.  (pmmgr already adds -F, -c, and -f.)  The default is no pmieconf, so  instead,  the
              pmie file above should probably contain a -c option, to specify a fixed pmie configuration.

FILES

       $PCP_SYSCONFIG_DIR/pmmgr/
                 default configuration directory
       $PCP_LOG_DIR/pmmgr/
                 default logging directory

BUGS

PCP ENVIRONMENT

       Environment  variables  with the prefix PCP_ are used to parametrize 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).

SEE ALSO

       PCPIntro(1),  pmcd(1),  pmlogconf(1),  pmlogger(1), pmieconf(1), pmie(1), pmlogreduce(1), pcp.conf(5) and
       pcp.env(5).

Performance Co-Pilot                                   PCP                                              PMMGR(1)