---
name: "PCPCompat"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PCPCompat"
---

# PCPCompat(1)

backward-compatibility in the Performance Co-Pilot (PCP)

## NAME

**PCPCompat**, **pcp-collectl**, **pmmgr**, **pmwebd** - backward-compatibility in the Performance Co-Pilot (PCP)

## INTRODUCTION

The Performance Co-Pilot (PCP) is a toolkit designed for monitoring and managing system-level performance. These services are distributed and scalable to accommodate the most complex system configurations and performance problems.

In order to achieve these goals effectively, protocol and on-disk compatibility is provided between different versions of PCP. It is feasible (and indeed encouraged) to use current PCP tools to interrogate any remote, down-rev or up-rev [**pmcd**(1)](/pmcd/1.md) and also to replay any historical PCP archive (the PCP testsuite includes PCP archives created over 20 years ago!).

From time to time the PCP developers deprecate and remove PCP utilities, replacing them with new versions of utilities providing comparable features. This page describes replacement utilities for historical PCP tools.

## PYTHON2

PCP provides [**python**(1)](/python/1.md) interfaces for the [**PMAPI**(3)](/PMAPI/3.md) (Performance Metrics API), the [**PMDA**(3)](/PMDA/3.md) API (Performance Metrics Domain Agents), the **mmv\_stats\_register**(3) API (Memory-Mapped Values) and PCP archive creation [**LOGIMPORT**(3)](/LOGIMPORT/3.md) API.

With **python** version 2 reaching end-of-life in 2020 we have now removed all support for this version (from PCP version 7 and later). All PCP APIs and **python**-based tools support **python** version 3 and have for several years - upgrading is strongly recommended.

## QT4

PCP provides optional graphical user interfaces built on the cross-platform Qt library, particularly [**pmchart**(1)](/pmchart/1.md) and [**pmtime**(1)](/pmtime/1.md).

With Qt v4 reaching end-of-life in 2015 we have removed support for all versions before Qt v5. In addition, some features are missing in early versions of Qt v5 that are now mandatory when building and using PCP Qt tools. As a result the minimum required version of Qt for PCP v6 and beyond is now Qt 5.6.

## NSS

Versions of PCP before v6 used a combination of both Mozilla NSS (Network Security Services) and OpenSSL for the encryption component of the secure sockets functionality. Starting with PCP v6 this has been simplified into exclusive use of OpenSSL for all use of encryption across PCP. This change affects configuration of optional functionality in [**pmcd**(1)](/pmcd/1.md) and [**PMAPI**(3)](/PMAPI/3.md) client tools using secure sockets.

The net effect of this change is that encryption is configured in the same ways, using the same certificates, across the HTTPS functionality in [**pmproxy**(1)](/pmproxy/1.md), as well as the encrypted PCP protocol functionality between **pmcd**, **pmproxy** and **PMAPI** client tools. Additionally, the key-value server service used by [**pmseries**(1)](/pmseries/1.md) and **pmproxy** also exclusively uses OpenSSL, and in a manner similar to PCP, which makes administering these services significantly simpler.

## SAR2PCP, IOSTAT2PCP

The [**sar2pcp**(1)](/sar2pcp/1.md) and [**iostat2pcp**(1)](/iostat2pcp/1.md) utilities are deprecated, and will be retired in a future version of PCP (v7). This is being replaced by native support for generating PCP archives within the tools of the *sysstat* package (which provides **sar** itself, as well as the **sadf** utility which produces PCP archives via the **-l** option).

## PMLOGCONF-SETUP

Earlier versions of PCP (prior to v5.1.1) provided a shell script that was used internally by [**pmlogconf**(1)](/pmlogconf/1.md), located in the **PCP\_BINADM\_DIR** directory, named **pmlogconf-setup**. This script has been retired. The equivalent functionality remains available in the unlikely event it should be needed via the **-s** or **--setup** option to [**pmlogconf**(1)](/pmlogconf/1.md).

The version 1 **pmlogconf-setup** configuration file format (from IRIX) was also retired in this release, after more than 10 years of automatic transition to version 2 format by **pmlogconf**.

## PMMGR

The stand-alone PCP daemon manager **pmmgr** has been retired from PCP v5.2.0 onward. It was phased out in favour of the simpler [**pmfind**(1)](/pmfind/1.md) service for setting up [**pmie**(1)](/pmie/1.md) and [**pmlogger**(1)](/pmlogger/1.md) \`\`farms'' of discovered PCP collector systems with [**pmfind\_check**(1)](/pmfind_check/1.md). The new mechanisms, especially when integrated with **systemd**, require no additional daemons and are better integrated with the **pmie** and **pmlogger** service management used elsewhere in PCP.

## PCP-COLLECTL

The **pcp-collectl** utility has been superseded by [**pmrep**(1)](/pmrep/1.md) from PCP v5 onward.

The equivalent of **pcp-collectl** subsystem reporting is achieved as follows:

- **pmrep :collectl-sc**

  Processor subsystem view.

- **pmrep :collectl-sm**

  Memory subsystem view.

- **pmrep :collectl-sd**

  Aggregate disks view.

- **pmrep :collectl-sD**

  Per-disk-device view.

- **pmrep :collectl-dm-sD**

  Device mapper view.

- **pmrep :collectl-sn**

  Network subsystem view.

## PCP-WEBAPPS

The stand-alone web applications packaged with older PCP versions have been superseded by **grafana-server**(1) with the **grafana-pcp** plugin **https://github.com/performancecopilot/grafana-pcp**.

This plugin provides an implementation of the Vector application, as well as data sources for [**pmdabpftrace**(1)](/pmdabpftrace/1.md) ( [**bpftrace**(8)](/bpftrace/8.md) scripts) and [**pmseries**(1)](/pmseries/1.md) (fast, scalable, distributed time series analysis).

## PMWEBD

The **pmwebd** daemon has been superseded by [**pmproxy**(1)](/pmproxy/1.md) from PCP v5 onward.

By default, **pmproxy** will now listen on both its original port (44322) and the PCP web API port (44323) when the time series support is built.

**pmproxy** provides a compatible implementation of the live [**PMWEBAPI**(3)](/PMWEBAPI/3.md) interfaces used traditionally by the Vector web application (see the \`\`PCP-WEBAPPS'' section). It also provides extensions to the original **pmwebd** REST APIs (such as derived metrics, namespace lookups and instance domain profiles), support for the HTTPS protocol, and fast, scalable time series querying using the [**pmseries**(1)](/pmseries/1.md) REST API with a distributed key-value server such as **https://valkey.io/**.

The partial Graphite API emulation provided by **pmwebd** has not been re-implemented - applications wishing to use similar services could use the scalable time series REST APIs described on [**PMWEBAPI**(3)](/PMWEBAPI/3.md).

## SEE ALSO

[**pcp**(1)](/pcp/1.md), [**pmcd**(1)](/pmcd/1.md), [**iostat2pcp**(1)](/iostat2pcp/1.md), [**sar2pcp**(1)](/sar2pcp/1.md), [**pmrep**(1)](/pmrep/1.md), [**pmfind**(1)](/pmfind/1.md), [**pmfind\_check**(1)](/pmfind_check/1.md), [**pmlogconf**(1)](/pmlogconf/1.md), [**pmproxy**(1)](/pmproxy/1.md), [**pmseries**(1)](/pmseries/1.md), [**pmdabpftrace**(1)](/pmdabpftrace/1.md), [**python**(1)](/python/1.md), **grafana-server**(1), **mmv\_stats\_register**(3), [**LOGIMPORT**(3)](/LOGIMPORT/3.md), [**PMAPI**(3)](/PMAPI/3.md), [**PMDA**(3)](/PMDA/3.md) and [**PMWEBAPI**(3)](/PMWEBAPI/3.md).
