In addition to the PCP run-time environment and configuration
variables described in the PCP ENVIRONMENT
section below, the
following environment variables apply to all installations.
Note that most uses of these environment variables are optimized
to check the environment only the first time the variable might
be used. As the environment usually is not checked again, the
only safe strategy is to ensure all PCP-related environment
variables are set before the first call into any of the PCP
libraries.
PCP_ALLOW_BAD_CERT_DOMAIN
When set, allow clients to accept certificates with
mismatched domain names with no prompt when they are sent
by pmcd
or other server components. See
PCP_SECURE_SOCKETS.
PCP_ALLOW_SERVER_SELF_CERT
When set, allow clients to accept self-signed certificates
with no prompt when they are sent by pmcd
or other server
components. See PCP_SECURE_SOCKETS.
PCP_CONSOLE
When set, this changes the default console from /dev/tty
(on Unix) or CON: (on Windows) to be the specified
console. The special value of none can be used to
indicate no console is available for use. This is used in
places where console-based tools need to interact with the
user, and in particular is used when authentication is
being performed.
PCP_DEBUG
When set, this variable provides an alternate to the -D
command line option described above to initialize the
diagnostic and debug options. The value for $PCP_DEBUG
is
the same as for the -D
command line option, namely a
comma-separated list of debugging option name(s), and/or
decimal integers, see pmdbg(1) for a description of the
supported option names and values.
PCP_DERIVED_CONFIG
When set, this variable defines a colon separated list of
files and/or directories (the syntax is the same as for
the $PATH
variable for sh
(1)). The components are
expanded into a list of files as follows: if a component
of $PCP_DERIVED_CONFIG
is a file, then that file is added
to the list, else if a component is a directory then
recursive descent is used to enumerate all files below
that directory and these are added to the list.
Each file in the resulting list is assumed to contain
definitions of derived metrics as per the syntax described
in pmLoadDerivedConfig(3), and these are loaded in order.
Derived metrics may be used to extend the available
metrics with new (derived) metrics using simple arithmetic
expressions.
If PCP_DERIVED_CONFIG
is set, the derived metric
definitions are processed automatically as each new source
of performance metrics is established (i.e. each time a
pmNewContext(3) is called) or when requests are made
against the PMNS.
Any component in the $PCP_DERIVED_CONFIG
list or the
expanded list of files that is not a file, or is not a
directory or is not accessible (due to permissions or a
bad symbolic link) will be silently ignored.
PCP_IGNORE_MARK_RECORDS
When PCP archives logs are created there may be temporal
gaps associated with discontinuities in the time series of
logged data, for example when pmcd(1) is restarted or when
multiple archive logs are concatenated with
pmlogextract(1). These discontinuities are internally
noted with a <mark> record in the PCP archive logs, and
value interpolation as described in pmSetMode(3) is not
supported across <mark> records (because the values before
and after a <mark> record are not necessarily from a
continuous time series). Sometimes the user knows the
data semantics are sound in the region of the <mark>
records, and $PCP_IGNORE_MARK_RECORDS
may be used to
suppress the default behaviour.
If PCP_IGNORE_MARK_RECORDS
is set (but has no value) then
all <mark> records will be ignored. Otherwise the value
$PCP_IGNORE_MARK_RECORDS
follows the syntax for an
interval argument described above for the -t
option, and
<mark> records will be ignored if the time gap between the
last record before the <mark> and the first record after
the <mark> is not more than interval.
PCP_SECURE_SOCKETS
When set, this variable forces any monitor tool
connections to be established using the certificate-based
secure sockets feature. If the connections cannot be
established securely, they will fail.
PCP_SECURE_DB_METHOD
With secure socket connections, the certificate and key
database is stored using the sql:
method by default. Use
PCP_SECURE_DB_METHOD
to override the default, most usually
setting the value to the empty string (for the older
database methods).
PCP_SECURE_DB_PATH
When set, this variable specifies an alternate certificate
database path for client tools. Similar to the action of
the -C option for pmcd(1) and pmproxy(1).
PCP_NSS_INIT_MODE
Mode to use to initialize the NSS certificate database
when using secure connections. This variable may be set
to either readonly
or readwrite
. If unset, the default is
readwrite
.
PCP_STDERR
Many PCP tools support the environment variable
PCP_STDERR
, which can be used to control where error
messages are sent. When unset, the default behavior is
that ``usage'' messages and option parsing errors are
reported on standard error, other messages after initial
startup are sent to the default destination for the tool,
i.e. standard error for ASCII tools, or a dialog for GUI
tools.
If PCP_STDERR
is set to the literal value DISPLAY
then all
messages will be displayed in a dialog. This is used for
any tools launched from a Desktop environment.
If PCP_STDERR
is set to any other value, the value is
assumed to be a filename, and all messages will be written
there.
PMCD_CONNECT_TIMEOUT
When attempting to connect to a remote pmcd(1) on a
machine that is booting, the connection attempt could
potentially block for a long time until the remote machine
finishes its initialization. Most PCP applications and
some of the PCP library routines will abort and return an
error if the connection has not been established after
some specified interval has elapsed. The default interval
is 5 seconds. This may be modified by setting
PMCD_CONNECT_TIMEOUT
in the environment to a real number
of seconds for the desired timeout. This is most useful
in cases where the remote host is at the end of a slow
network, requiring longer latencies to establish the
connection correctly.
PMCD_RECONNECT_TIMEOUT
When a monitor or client application loses a connection to
a pmcd(1), the connection may be re-established by calling
a service routine in the PCP library. However, attempts
to reconnect are controlled by a back-off strategy to
avoid flooding the network with reconnection requests. By
default, the back-off delays are 5, 10, 20, 40 and 80
seconds for consecutive reconnection requests from a
client (the last delay will be repeated for any further
attempts after the fifth). Setting the environment
variable PMCD_RECONNECT_TIMEOUT
to a comma separated list
of positive integers will re-define the back-off delays,
for example setting PMCD_RECONNECT_TIMEOUT
to ``1,2'' will
back-off for 1 second, then attempt another connection
request every 2 seconds thereafter.
PMCD_REQUEST_TIMEOUT
For monitor or client applications connected to pmcd(1),
there is a possibility of the application "hanging" on a
request for performance metrics or metadata or help text.
These delays may become severe if the system running pmcd
crashes, or the network connection is lost. By setting
the environment variable PMCD_REQUEST_TIMEOUT
to a number
of seconds, requests to pmcd
will timeout after this
number of seconds. The default behavior is to be willing
to wait 10 seconds for a response from every pmcd
for all
applications.
PMCD_WAIT_TIMEOUT
When pmcd(1) is started from $PCP_RC_DIR/pcp
then the
primary instance of pmlogger(1) will be started if the
configuration flag pmlogger
is chkconfig
(8) or
systemctl(1) enabled and pmcd
is running and accepting
connections.
The check on pmcd
's readiness will wait up to
PMCD_WAIT_TIMEOUT
seconds. If pmcd
has a long startup
time (such as on a very large system), then
PMCD_WAIT_TIMEOUT
can be set to provide a maximum wait
longer than the default 60 seconds.
PMNS_DEFAULT
If set, then interpreted as the full pathname to be used
as the default local PMNS for pmLoadNameSpace(3).
Otherwise, the default local PMNS is located at
$PCP_VAR_DIR/pcp/pmns/root
for base PCP installations.
PCP_COUNTER_WRAP
Many of the performance metrics exported from PCP agents
have the semantics of counter meaning they are expected to
be monotonically increasing. Under some circumstances,
one value of these metrics may smaller than the previously
fetched value. This can happen when a counter of finite
precision overflows, or when the PCP agent has been reset
or restarted, or when the PCP agent is exporting values
from some underlying instrumentation that is subject to
some asynchronous discontinuity.
The environment variable PCP_COUNTER_WRAP
may be set to
indicate that all such cases of a decreasing ``counter''
should be treated as a counter overflow, and hence the
values are assumed to have wrapped once in the interval
between consecutive samples. This ``wrapping'' behavior
was the default in earlier PCP versions, but by default
has been disabled in PCP release from version 1.3 on.
PMDA_PATH
The PMDA_PATH
environment variable may be used to modify
the search path used by pmcd(1) and pmNewContext(3) (for
PM_CONTEXT_LOCAL
contexts) when searching for a daemon or
DSO PMDA. The syntax follows that for PATH
in sh
(1), i.e.
a colon separated list of directories, and the default
search path is ``/var/pcp/lib:/usr/pcp/lib'', (or
``/var/lib/pcp/lib'' on Linux, depending on the value of
the $PCP_VAR_DIR environment variable).
PMCD_PORT
The TCP/IP port(s) used by pmcd(1) to create the socket
for incoming connections and requests, was historically
4321 and more recently the officially registered port
44321; in the current release, both
port numbers are used
by default as a transitional arrangement. This may be
over-ridden by setting PMCD_PORT
to a different port
number, or a comma-separated list of port numbers. If a
non-default port is used when pmcd
is started, then every
monitoring application connecting to that pmcd
must also
have PMCD_PORT
set in their environment before attempting
a connection.
The following environment variables are relevant to installations
in which pmlogger(1), the PCP archive logger, is used.
PMLOGGER_PORT
The environment variable PMLOGGER_PORT
may be used to
change the base TCP/IP port number used by pmlogger(1) to
create the socket to which pmlc(1) instances will try and
connect. The default base port number is 4330. When
used, PMLOGGER_PORT
should be set in the environment
before pmlogger
is executed.
PMLOGGER_REQUEST_TIMEOUT
When pmlc(1) connects to pmlogger(1), there is a remote
possibility of pmlc
"hanging" on a request for information
as a consequence of a failure of the network or pmlogger
.
By setting the environment variable
PMLOGGER_REQUEST_TIMEOUT
to a number of seconds, requests
to pmlogger
will timeout after this number of seconds.
The default behavior is to be willing to wait forever for
a response from each request to a pmlogger
. When used,
PMLOGGER_REQUEST_TIMEOUT
should be set in the environment
before pmlc
is executed.
If you have the PCP product installed, then the following
environment variables are relevant to the Performance Metrics
Domain Agents (PMDAs).
PMDA_LOCAL_PROC
Use this variable has been deprecated and it is now
ignored. If the ``proc'' PMDA is configured as a DSO for
use with pmcd(1) on the local host then all of the
``proc'' metrics will be available to applications using a
PM_CONTEXT_LOCAL
context.
The previous behaviour was that if this variable was set,
then a context established with the type of
PM_CONTEXT_LOCAL
will have access to the ``proc'' PMDA to
retrieve performance metrics about individual processes.
PMDA_LOCAL_SAMPLE
Use this variable has been deprecated and it is now
ignored. If the ``sample'' PMDA is configured as a DSO
for use with pmcd(1) on the local host then all of the
``sample'' metrics will be available to applications using
a PM_CONTEXT_LOCAL
context.
The previous behaviour was that if this variable was set,
then a context established with the type of
PM_CONTEXT_LOCAL
will have access to the ``sample'' PMDA
if this optional PMDA has been installed locally.
PMIECONF_PATH
If set, pmieconf(1) will form its pmieconf(5)
specification (set of parameterized pmie(1) rules) using
all valid pmieconf
files found below each subdirectory in
this colon-separated list of subdirectories. If not set,
the default is $PCP_VAR_DIR/config/pmieconf
.