pmlogcheck (1) - Linux Manuals

pmlogcheck: checks for invalid data in a PCP archive


pmlogcheck - checks for invalid data in a PCP archive


pmlogcheck [-lz] [-n pmnsfile] [-S start] [-T finish] [-Z timezone] archive


pmlogcheck prints information about the nature of any invalid data which it detects in the files of a PCP archive.

The archive has the base name archive and must have been previously created using pmlogger(1).

Normally pmlogcheck operates on the default Performance Metrics Name Space (pmns(5)), however if the -n option is specified an alternative namespace is loaded from the file pmnsfile.

The command line options -S and -T can be used to specify a time window over which metrics should be checked in Pass 3 (see below). These options are common to many Performance Co-Pilot tools and are fully described in PCPIntro(1).

The -l option prints the archive label, showing the log format version, the time and date for the start and (current) end of the archive, and the host from which the performance metrics values were collected.

By default, pmlogcheck reports the time of day according to the local timezone on the system where pmlogcheck is run. The -Z option changes the timezone to timezone in the format of the environment variable TZ as described in environ(7). The -z option changes the timezone to the local timezone at the host that is the source of the performance metrics, as specified in the label record of the archive log.

The checking proceeds in a number of passes, each designed to validate progressively more complex semantic relationships between the information in a PCP archive.

Pass 0

Each physical file of the PCP archive is processed to ensure the label records are valid and consistent, and that each file contains an integral number of physical records with correct header and trailer fields.

Any errors at this stage are usually fatal. The PCP archive is probably damaged beyond repair, and no more passes of pmlogcheck are attempted.

Pass 1

Validates the integrity of the temporal index, usually archive.index.

As the temporal index is (strictly speaking) optional, errors at this stage are handled by marking the index as bad and ignoring it for the remainder of the pmlogcheck passes.

Permanent repair can be achieved by removing the temporal index file and then making a copy of the PCP archive using pmlogrewrite(1) or pmlogextract(1). This will create a new temporal index for the copied archive as a side-effect.

Pass 2

Validates the integrity of the metadata file, usually archive.meta.

Pass 3

Validates the integrity of each of the log volumes of the PCP archive, usually archive.0, archive.1, etc.

There is some basic integrity checks to ensure the encoding of values for each metric remains consistent and the values are well formed across all the observations in the archive.

Also the timestamps for the observations are expected to be monotonically increasing as the archive is tranversed.

Additional attention is given to counter metrics (type from pmLookupDesc(3) is PM_SEM_COUNTER) which are expected to have monotonically increasing values. If the values are not monotonic increasing this may suggest a counter wrap has happened or there has been some interruption or reset to the underlying source of the performance data that is no captured in the archive.

For each counter metric which has been detected as having wrapped at some point in the archive, pmlogcheck produces output describing the metric name (with instance identifiers where appropriate), the internal storage type for the metric, the value of the metric before the counter wrap (with its associated timestamp), and the value of the metric after the wrap (also with a timestamp).

pmlogcheck produces two different timestamp formats, depending on the interval over which it is run. For an interval greater than 24 hours, the date is displayed in addition to the time at which the counter wrap occurred. If the extent of the data being checked is less than 24 hours, a more precise format is used (time is displayed with millisecond precision, but without the date).


default PMNS specification files
default directory for PCP archives containing performance data collected from the host hostname.


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).


All are generated on standard error and are intended to be self- explanatory.


PCPIntro(1), pmdumplog(1), pmlogextract(1), pmlogger(1), pmlogrewrite(1), pmlogsummary(1), pmval(1), pmLookupDesc(3), pcp.conf(5), pcp.env(5) and pmns(5).