Provided by: pcp_4.3.1-1_amd64 bug


       pmlc - configure active Performance Co-Pilot pmlogger(s) interactively


       pmlc [-e] [-h host] [-i] [-n pmnsfile] [-P] [-p port] [-Z timezone] [-z] [pid]


       pmlc  may  be  used  to change those metrics and instances which a pmlogger(1) writes to a
       Performance Co-Pilot archive (see PCPIntro(1)), the frequency with which the  metrics  are
       collected  and whether the logging is mandatory, advisory, on or off.  It also reports the
       current logging status of metrics and instances.  pmlc may be  used  to  control  pmlogger
       instances on remote hosts as well as those on the local host.

       Normally  pmlc  operates on the distributed Performance Metrics Name Space (PMNS), however

       If the -P option is specified, pmlc will attempt to start with a connection to the primary
       pmlogger  on  the  local  host.   If the -p option is specified, then pmlc will attempt to
       start with a connection to the pmlogger on this TCP/IP port.   Alternatively,  if  pid  is
       specified, a connection to the pmlogger instance with that process id will be attempted on
       startup.  The -h option may only be used if -P, -p port or a pid is  also  specified.   In
       that  case pmlc will initially connect to the specified (remote) pmlogger instance on host
       rather than the local host.  If the connection to the specified pmlogger  instance  cannot
       be  established,  pmlc  will  start with no connection.  These options typically allow the
       same file of pmlc commands to be directed to multiple pmlogger instances  by  varying  the
       command  line  arguments.   Note that -P, -p port, pid and -h are used only when making an
       initial connection to a pmlogger instance.  They are not used as  defaults  if  subsequent
       connections are made interactively (see the connect command below).

       By  default,  pmlc  reports  the time of day according to the local timezone on the system
       where pmlc is run.  The -Z option changes the timezone to timezone in the  format  of  the
       the timezone of the pmlogger instance from which information is being obtained.  Only  one
       of -z or -Z may be specified.

       If  standard  input  is from a tty, pmlc is interactive, with prompts.  The -i flag may be
       used to force interactive behavior, and is typically used in conjunction with -e  to  echo
       all command input on standard output.

       The following commands may be used:

       show [ loggers ] [ @host ]
           Displays  the  process  identities of all pmlogger instances running on the local host
           (or host, if specified).  The primary pmlogger pid is parenthesized because it can  be
           referred to as "primary" as well as by its pid.

       connect pid [ @host ]
       connect primary [ @host ]
           Connects  pmlc  to  the  specified  pmlogger  process.   Any  existing connection to a
           pmlogger instance is closed first.  Each pmlogger instance will  accept  at  most  one
           connection at a time, so if the connection is successfully established, your pmlc will
           be the only one controlling the pmlogger instance it is connected to.

       new volume
           This command works only while a connection to a pmlogger instance is established.   It
           tells  the  pmlogger  to  close  the  current volume of the log and open a new volume.
           Closed volumes may be archived, e.g. as part of a regular log management procedure  to
           control the size of the physical log files.

           prints information about the state of the pmlogger instance and its associated log.

       timezone local | logger | "timezone"
           This command sets the time zone used when times are printed.  local means use the time
           zone  of  the  machine that pmlc is running on.  logger means use the time zone of the
           machine where the pmlogger instance is running.  Alternatively  an  explicit  timezone
           enclosed  in  quotes  may  be  supplied  (refer to TZ in environ(7) for details).  The
           default time zone is local unless one of the -z or -Z options has been supplied on the
           command line.

           This  command works only while a connection to a pmlogger instance is established, and
           requests the pmlogger instance to flush  to  disk  all  buffers  associated  with  the
           current archive.  For old-timers, sync is a synonym for flush.  In current versions of
           pmlogger(1) all writes are unbuffered and aligned with  the  logical  records  in  the
           external  files,  so  this  command  achieves  nothing,  but is retained for backwards

           Displays a summary of the available commands.
           h and ? are synonyms for help.

           Exits from pmlc.

       The remaining commands query and change the logging state of metrics and instances.   They
       will  work only if pmlc has a connection to a pmlogger instance.  Metrics may be specified
       as fully qualified names (e.g. hinv.ncpu) or subtrees of the PMNS (e.g.  hinv)  which  are
       expanded  to  include  all  metrics  in the subtree (e.g. hinv.ncpu, hinv.cpuclock, etc.).
       Lists of metrics may be specified by enclosing them in  braces  with  spaces  or  a  comma
       between  metrics  (e.g.  {hinv.ncpu  hinv.ndisk}).  Subtrees of metrics may be included in
       such lists.

       Each individual metric specification may be  further  qualified  with  a  space  or  comma
       separated  list  of  instances  in  square  brackets  (e.g. kernel.all.load["1 minute", "5
       minute"]).  External instance names or numeric internal instance identifiers or  both  may
       be   used   in   the  same  list  (e.g.  sample.colour.[red,1,"blue"]).   If  an  instance
       qualification is applied to a subtree of the PMNS all of the metrics in the  subtree  must
       have the same instance domain.  Instance qualifications may not be applied to entire lists
       of metrics but may appear inside such lists.

       If no instances are specified for a metric, all instances are used.  All  instances  means
       all  instances available at the time the pmlogger instance in question fetches the metrics
       for logging.  If an instance domain changes over time this is not always the same  as  the
       set  of  instances  displayed  by  pmlc,  which  can  only display the currently available
       instances.  To prevent  unintentional  errors,  only  the  instances  that  are  currently
       available to pmlc may appear in instance specifications.

       query metriclist
           The  current  logging  state  of  each  metric  (and  instances,  where applicable) in
           metriclist is displayed.  This includes the logging state (e.g. on,  maybe,  off)  and
           the  logging  interval  for  each  metric  (and  instance)  requested.   The following
           abbreviations pertaining to metrics (and instances) may appear  in  the  output:  adv,
           advisory;  mand,  mandatory;  nl,  not  in  the  log; na, in the log but not currently
           available from its Performance Metrics Domain Agent  (PMDA).   Where  appropriate,  an
           instance  name  will  appear  last on a line preceded by its numeric internal instance

       [ log ] mandatory on interval metriclist
           This form of the log command turns on logging for the metrics (and any  instances)  in
           metriclist.   interval  specifies  how often the specified metrics/instances should be
           logged.  once indicates that the metrics/instances should appear at most once  in  the
           log.   More  often  one  would  use  the optional keyword every followed by a positive
           number and one of millisecond (or msec), second (or sec), minute  (or  min),  hour  or
           their plurals.
           Note  that  the  keyword  default  which  may  be  used  for the default interval in a
           pmlogger(1) configuration file cannot be used in pmlc.
           Internal limitations require the interval to be less than  (approximately)  74  hours.
           An interval value of zero is a synonym for once.

       [ log ] mandatory off metriclist
           This  tells  the  pmlogger  instance  not  to  log  any  of  the  metrics/instances in

       [ log ] mandatory maybe metriclist
           This tells the pmlogger instance to honor any subsequent advisory logging requests for
           the   metrics/instances   in   metriclist.   If  the  current  logging  state  of  the
           metrics/instances is mandatory (either on or off) the new state will be set  to  maybe
           (effectively  advisory off).  If the current state of the metrics/instances is already
           advisory (either on or off) the state(s) for the metrics/instances will remain as they

       [ log ] advisory on interval metriclist
       [ log ] advisory off metriclist
           Advisory  logging  is  only  applicable  if  the  last  logging  state specified for a
           metric/instance was "mandatory  maybe"  (which  permits  subsequent  advisory  logging
           control)  or  if  the  logging  state  is already advisory.  These two statements turn
           advisory logging on or off (respectively) for the specified metrics/instances.
           The interpretation for interval is as above for the mandatory case.

       There is no continuation character required for commands that span lines.

       The word at may be used interchangeably with @.

       A request to log all instances of a metric will supersede any prior request to log  either
       all  or  specific instances of a metric (if the request specifies a permissible transition
       in the logging state).  A request to log specific instances of a metric when all instances
       of a metric are already being logged is refused by pmlogger.


       pmlc may have restricted access to and control over pmlogger(1) processes.

       If  a  pmlogger(1)  is unable to export its control information to the local pmcd(1), then
       that pmlogger(1) cannot cannot be connected to nor controlled by pmlc.  In practice,  this
       means  the  pmlogger(1)  process  has  to  be  owned  by the user ``pcp'' and/or the group
       ``pcp''.  If pmlogger(1) is running on the host  ``foo''  then  use  ``pminfo  -f  -h  foo
       pmcd.pmlogger''  to  verify  that  the  pmlogger(1)  of  interest  is  known  to  pmcd(1),
       alternatively pmlogger(1) instances that are not reported from the pmlc show loggers  @foo
       command are not known to pmcd(1) on the host ``foo''.

       If  pmlogger(1)  is  launched with a configuration file that contains an [access] section,
       then pmlc will be unable to connect to that pmlogger(1) unless the access  controls  allow
       some  access  from  the host where pmlc is being run.  Minimally this requires the enquire
       access to be permitted in the pmlogger(1) access control section.

       If pmlc is able to connect to the  pmlogger(1)  of  interest,  then  the  following  table
       summarizes the permissions needed to perform different pmlc commands:

                      │  pmlc command    │       Required pmlogger access        │
                      │show loggers      │ Any                                   │
                      │connect           │ Any of enquire, advisory or mandatory │
                      │status            │ Any of enquire, advisory or mandatory │
                      │query ...         │ Any of enquire, advisory or mandatory │
                      │log advisory ...  │ advisory                              │
                      │log mandatory ... │ mandatory                             │
                      │new volumemandatory                             │


       configuration file, as described in pcp.conf(5).


       PCPIntro(1), pmcd(1), pmdumplog(1), pmlogger(1), pcp.conf(5), pcp.env(5) and environ(7).


       Most error or warning messages are self-explanatory.  A message of the form
               Warning: unable to change logging state for...
       followed by a list of metrics (and possibly instances) indicates that pmlogger refused the
       request  for  the  metrics  (and instances) that appear.  Any metrics (and instances) that
       were specified but do not appear in the message  have  had  their  logging  state  updated
       successfully  (no  news  is  good  news).   Usually  this  warning results from requesting
       advisory logging when a mandatory control is already in place, or requesting  logging  for
       specific instances when all instances are already being logged.


       If  all  instances  of  a  metric  are  being logged and a request is made to log specific
       instances of the metric with the same state and  frequency,  the  request  may  appear  to
       succeed, even though pmlogger has refused the request.  This is not normally a problem, as
       the required information will still be placed into the log by pmlogger.

       However in the case where the metric is to be logged once, the outcome is not  what  might
       be expected.  When pmlogger receives a request to log a metric once, it places the current
       value(s) of the metric into the log as soon as it can, regardless of whether the metric is
       already in the log.  This may be used to force values into the log.  When a request to log
       specific instances of a metric arrives and is refused because all instances of the  metric
       are  already being logged, pmlogger does not place values for the instances requested into
       the log.  It returns the current logging state for each instance requested to  pmlc.   The
       requested and returned states are identical, so pmlc doesn't raise an error as it should.

       To ensure that only certain instances of a metric are being logged, one should always turn
       off logging for all instances of the metric prior to turning on logging for  the  specific
       instances required.