PCPCompat, pcp-collectl, pmwebd — backward-compatibility in the Performance Co-Pilot (PCP)
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) 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.
The pcp-collectl utility has been superceded by pmrep(1) 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
- pmrep :collectl-dm-sD
Device mapper view.
- pmrep :collectl-sn
Network subsystem view.
The standalone web applications packaged with older PCP versions have been superceded 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) (bpftrace(8) scripts) and pmseries(1) (fast, scalable Redis-based time series analysis).
The pmwebd daemon has been superceded by pmproxy(1) 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) 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) REST API and redis-server(1).
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).
pcp(1), pmcd(1), pmrep(1), pmproxy(1), pmseries(1), pmdabpftrace(1), redis-server(1), grafana-server(1) and PMWEBAPI(3).
The man pages pcp-collectl(1), pcpcompat(1) and pmwebd(1) are aliases of PCPCompat(1).