1PMLC(1)                     General Commands Manual                    PMLC(1)
2
3
4

NAME

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

SYNOPSIS

9       pmlc [-eiPz?]  [-h host] [-n pmnsfile] [-p port] [-Z timezone] [pid]
10

DESCRIPTION

12       pmlc  may  be used to change those metrics and instances which a pmlog‐
13       ger(1) writes to a Performance Co-Pilot archive (see PCPIntro(1)),  the
14       frequency  with which the metrics are collected and whether the logging
15       is mandatory, advisory, on or off.  It also reports the current logging
16       status  of metrics and instances.  pmlc may be used to control pmlogger
17       instances on remote hosts as well as those on the local host.
18
19       Normally pmlc operates on  the  distributed  Performance  Metrics  Name
20       Space  (PMNS),  however  if  the  -n option is specified an alternative
21       local PMNS is loaded from the file pmnsfile.
22
23       If the -P option is specified, pmlc will attempt to start with  a  con‐
24       nection to the primary pmlogger on the local host.  If the -p option is
25       specified, then pmlc will attempt to start with  a  connection  to  the
26       pmlogger  on  this  TCP/IP port.  Alternatively, if pid is specified, a
27       connection to the pmlogger  instance  with  that  process  id  will  be
28       attempted on startup.  The -h option may only be used if -P, -p port or
29       a pid is also specified.  In that case pmlc will initially  connect  to
30       the  specified (remote) pmlogger instance on host rather than the local
31       host.  If the connection to the specified pmlogger instance  cannot  be
32       established,  pmlc  will start with no connection.  These options typi‐
33       cally allow the same file of pmlc commands to be directed  to  multiple
34       pmlogger  instances  by  varying the command line arguments.  Note that
35       -P, -p port, pid and -h are used only when making an initial connection
36       to  a  pmlogger  instance.  They are not used as defaults if subsequent
37       connections are made interactively (see the connect command below).
38
39       By default, pmlc reports the time of day according to the  local  time‐
40       zone  on the system where pmlc is run.  The -Z option changes the time‐
41       zone to timezone in the  format  of  the  environment  variable  TZ  as
42       described  in  environ(7).   The  -z option changes the timezone to the
43       timezone of the pmlogger  instance  from  which  information  is  being
44       obtained.  Only one of -z or -Z may be specified.
45
46       If  standard  input  is  from a tty, pmlc is interactive, with prompts.
47       The -i flag may be used to force interactive behavior, and is typically
48       used  in conjunction with -e to echo all command input on standard out‐
49       put.
50

COMMANDS

52       The following commands may be used:
53
54       show [ loggers ] [ @host ]
55           Displays the process identities of all pmlogger  instances  running
56           on  the  local  host (or host, if specified).  The primary pmlogger
57           pid is parenthesized because it can be referred to as "primary"  as
58           well as by its pid.
59
60       connect pid [ @host ]
61       connect primary [ @host ]
62           Connects pmlc to the specified pmlogger process.  Any existing con‐
63           nection to a pmlogger instance  is  closed  first.   Each  pmlogger
64           instance  will  accept  at most one connection at a time, so if the
65           connection is successfully established, your pmlc will be the  only
66           one controlling the pmlogger instance it is connected to.
67
68       new volume
69           This  command  works only while a connection to a pmlogger instance
70           is established.  It tells the pmlogger to close the current  volume
71           of  the log and open a new volume.  Closed volumes may be archived,
72           e.g. as part of a regular log management procedure to  control  the
73           size of the physical log files.
74
75       status
76           This  command  works only while a connection to a pmlogger instance
77           is established.  It prints  information  about  the  state  of  the
78           pmlogger instance and its associated log.
79
80       timezone local | logger | "timezone"
81           This command sets the time zone used when times are printed.  local
82           means use the time zone of the machine that  pmlc  is  running  on.
83           logger  means  use  the time zone of the machine where the pmlogger
84           instance is running.  Alternatively an explicit  timezone  enclosed
85           in  quotes may be supplied (refer to TZ in environ(7) for details).
86           The default time zone is local unless one of the -z or  -Z  options
87           has been supplied on the command line.
88
89       flush
90           This  command  works only while a connection to a pmlogger instance
91           is established, and requests the pmlogger instance to flush to disk
92           all  buffers  associated with the current archive.  For old-timers,
93           sync is a synonym for flush.  In current  versions  of  pmlogger(1)
94           all  writes  are unbuffered and aligned with the logical records in
95           the external files,  so  this  command  achieves  nothing,  but  is
96           retained for backwards compatibility.
97
98       help
99           Displays a summary of the available commands.
100           h and ? are synonyms for help.
101
102       quit
103           Exits from pmlc.
104
105       The  remaining  commands  query and change the logging state of metrics
106       and instances.  They will work only if  pmlc  has  a  connection  to  a
107       pmlogger  instance.   Metrics may be specified as fully qualified names
108       (e.g. hinv.ncpu) or subtrees of the PMNS (e.g. hinv) which are expanded
109       to  include  all metrics in the subtree (e.g. hinv.ncpu, hinv.cpuclock,
110       etc.).  Lists of metrics may be specified by enclosing them  in  braces
111       with  spaces  or a comma between metrics (e.g. {hinv.ncpu hinv.ndisk}).
112       Subtrees of metrics may be included in such lists.
113
114       Each individual metric specification may be further  qualified  with  a
115       space  or  comma  separated  list of instances in square brackets (e.g.
116       kernel.all.load["1 minute", "5 minute"]).  External instance  names  or
117       numeric  internal  instance identifiers or both may be used in the same
118       list (e.g. sample.colour.[red,1,"blue"]).  If an instance qualification
119       is  applied  to a subtree of the PMNS all of the metrics in the subtree
120       must have the same instance domain.  Instance qualifications may not be
121       applied to entire lists of metrics but may appear inside such lists.
122
123       If  no  instances  are  specified for a metric, all instances are used.
124       All instances means all instances available at the  time  the  pmlogger
125       instance  in  question fetches the metrics for logging.  If an instance
126       domain changes over time this is not always the  same  as  the  set  of
127       instances  displayed  by  pmlc,  which  can  only display the currently
128       available  instances.   To  prevent  unintentional  errors,  only   the
129       instances  that  are currently available to pmlc may appear in instance
130       specifications.
131
132       query metriclist
133           The current logging state of  each  metric  (and  instances,  where
134           applicable)  in metriclist is displayed.  This includes the logging
135           state (e.g. on, maybe, off) and the logging interval for each  met‐
136           ric (and instance) requested.  The following abbreviations pertain‐
137           ing to metrics (and instances) may appear in the output: adv, advi‐
138           sory;  mand,  mandatory; nl, not in the log; na, in the log but not
139           currently available  from  its  Performance  Metrics  Domain  Agent
140           (PMDA).   Where appropriate, an instance name will appear last on a
141           line preceded by its numeric internal instance identifier.
142
143       [ log ] mandatory on interval metriclist
144           This form of the log command turns on logging for the metrics  (and
145           any  instances)  in  metriclist.   interval specifies how often the
146           specified metrics/instances should be logged.  once indicates  that
147           the  metrics/instances should appear at most once in the log.  More
148           often one would use the optional keyword every followed by a  posi‐
149           tive  number  and  one  of  millisecond (or msec), second (or sec),
150           minute (or min), hour or their plurals.
151           Note that the keyword default which may be  used  for  the  default
152           interval  in  a  pmlogger(1)  configuration  file cannot be used in
153           pmlc.
154           Internal limitations require the interval to be less than (approxi‐
155           mately) 74 hours.  An interval value of zero is a synonym for once.
156
157       [ log ] mandatory off metriclist
158           This  tells  the  pmlogger  instance  not  to  log  any of the met‐
159           rics/instances in metriclist.
160
161       [ log ] mandatory maybe metriclist
162           This tells the pmlogger instance to honor any  subsequent  advisory
163           logging  requests  for the metrics/instances in metriclist.  If the
164           current logging state of the metrics/instances is mandatory (either
165           on or off) the new state will be set to maybe (effectively advisory
166           off).  If the current state of  the  metrics/instances  is  already
167           advisory  (either on or off) the state(s) for the metrics/instances
168           will remain as they are.
169
170       [ log ] advisory on interval metriclist
171       [ log ] advisory off metriclist
172           Advisory logging is only applicable if the last logging state spec‐
173           ified  for  a  metric/instance was "mandatory maybe" (which permits
174           subsequent advisory logging control) or if  the  logging  state  is
175           already advisory.  These two statements turn advisory logging on or
176           off (respectively) for the specified metrics/instances.
177           The interpretation for interval is as above for the mandatory case.
178
179       There is no continuation character  required  for  commands  that  span
180       lines.
181
182       The word at may be used interchangeably with @.
183
184       A  request  to  log  all instances of a metric will supersede any prior
185       request to log either all or specific instances of  a  metric  (if  the
186       request  specifies  a  permissible transition in the logging state).  A
187       request to log specific instances of a metric when all instances  of  a
188       metric are already being logged is refused by pmlogger.
189

OPTIONS

191       The available command line options are:
192
193       -e, --echo
194            Echo all command input on standard output.
195
196       -h host, --host=host
197            Connect pmlogger on host, rather than on the default localhost.
198
199       -i, --interactive
200            Force interactive behavior.
201
202       -n pmnsfile, --namespace=pmnsfile
203            Load  an alternative Performance Metrics Name Space (PMNS(5)) from
204            the file pmnsfile.
205
206       -p port, --port=port
207            Connect to the primary pmlogger on TCP/IP port port.
208
209       -P, --primary
210            Connect to the primary pmlogger.
211
212       -z, --logzone
213            Use local time of the pmlogger as the reporting timezone.
214
215       -Z timezone, --timezone=timezone
216            Use timezone for the date and time.  Timezone is in the format  of
217            the environment variable TZ as described in environ(7).
218
219       -?, --help
220            Display usage message and exit.
221

ACCESS CONTROL

223       pmlc  may  have  restricted access to and control over pmlogger(1) pro‐
224       cesses.
225
226       If a pmlogger(1) is unable to export its  control  information  to  the
227       local  pmcd(1), then that pmlogger(1) cannot cannot be connected to nor
228       controlled by pmlc.  In practice, this means  the  pmlogger(1)  process
229       has  to  be  owned  by  the  user ``pcp'' and/or the group ``pcp''.  If
230       pmlogger(1) is running on the host ``foo'' then use ``pminfo -f -h  foo
231       pmcd.pmlogger''  to verify that the pmlogger(1) of interest is known to
232       pmcd(1), alternatively pmlogger(1) instances that are not reported from
233       the pmlc show loggers @foo command are not known to pmcd(1) on the host
234       ``foo''.
235
236       If pmlogger(1) is launched with a configuration file that  contains  an
237       [access]  section,  then  pmlc will be unable to connect to that pmlog‐
238       ger(1) unless the access controls allow some access from the host where
239       pmlc  is  being  run.  Minimally this requires the enquire access to be
240       permitted in the pmlogger(1) access control section.
241
242       If pmlc is able to connect to the pmlogger(1)  of  interest,  then  the
243       following  table summarizes the permissions needed to perform different
244       pmlc commands:
245
246             ┌──────────────────┬───────────────────────────────────────┐
247pmlc command    │       Required pmlogger access        │
248             ├──────────────────┼───────────────────────────────────────┤
249show loggers      │ Any                                   │
250connect           │ Any of enquire, advisory or mandatory 
251status            │ Any of enquire, advisory or mandatory 
252query ...         │ Any of enquire, advisory or mandatory 
253log advisory ...  │ advisory                              
254log mandatory ... │ mandatory                             
255new volume        mandatory                             
256             └──────────────────┴───────────────────────────────────────┘

CAVEATS

258       If all instances of a metric are being logged and a request is made  to
259       log specific instances of the metric with the same state and frequency,
260       the request may appear to succeed, even though pmlogger has refused the
261       request.   This  is not normally a problem, as the required information
262       will still be placed into the log by pmlogger.
263
264       However in the case where the metric is to be logged once, the  outcome
265       is not what might be expected.  When pmlogger receives a request to log
266       a metric once, it places the current value(s) of the  metric  into  the
267       log  as  soon as it can, regardless of whether the metric is already in
268       the log.  This may be used to  force  values  into  the  log.   When  a
269       request  to  log  specific instances of a metric arrives and is refused
270       because all instances of the metric are already being logged,  pmlogger
271       does  not  place  values  for the instances requested into the log.  It
272       returns the current logging state for each instance requested to  pmlc.
273       The  requested and returned states are identical, so pmlc doesn't raise
274       an error as it should.
275
276       To ensure that only certain instances of a metric are being logged, one
277       should always turn off logging for all instances of the metric prior to
278       turning on logging for the specific instances required.
279

DIAGNOSTICS

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

PCP ENVIRONMENT

294       Environment variables with the prefix PCP_ are used to parameterize the
295       file  and  directory names used by PCP.  On each installation, the file
296       /etc/pcp.conf contains the  local  values  for  these  variables.   The
297       $PCP_CONF  variable may be used to specify an alternative configuration
298       file, as described in pcp.conf(5).
299

SEE ALSO

301       PCPIntro(1),   pmcd(1),   pmdumplog(1),    pmlogger(1),    pcp.conf(5),
302       pcp.env(5), PMNS(5) and environ(7).
303
304
305
306Performance Co-Pilot                  PCP                              PMLC(1)
Impressum