1PCPCOMPAT(1) General Commands Manual PCPCOMPAT(1)
2
3
4
6 PCPCompat, pcp-collectl, pmmgr, pmwebd - backward-compatibility in the
7 Performance Co-Pilot (PCP)
8
10 The Performance Co-Pilot (PCP) is a toolkit designed for monitoring and
11 managing system-level performance. These services are distributed and
12 scalable to accommodate the most complex system configurations and per‐
13 formance problems.
14
15 In order to achieve these goals effectively, protocol and on-disk com‐
16 patibility is provided between different versions of PCP. It is feasi‐
17 ble (and indeed encouraged) to use current PCP tools to interrogate any
18 remote, down-rev or up-rev pmcd(1) and also to replay any historical
19 PCP archive (the PCP testsuite includes PCP archives created over 20
20 years ago!).
21
22 From time to time the PCP developers deprecate and remove PCP utili‐
23 ties, replacing them with new versions of utilities providing compara‐
24 ble features. This page describes replacement utilities for historical
25 PCP tools.
26
28 PCP provides python(1) interfaces for the PMAPI(3) (Performance Metrics
29 API), the PMDA(3) API (Performance Metrics Domain Agents), the
30 mmv_stats_register(3) API (Memory-Mapped Values) and PCP archive log
31 creation LOGIMPORT(3) API.
32
33 With python version 2 reaching end-of-life in 2020 we have deprecated
34 the python version 2 interfaces in PCP (shipped, but no longer sup‐
35 ported). In the next major release of PCP (v7) version 2 support will
36 be retired (completely removed). All PCP APIs and python-based tools
37 support python version 3 and have for several years - upgrading is
38 strongly recommended.
39
41 PCP provides optional graphical user interfaces built on the cross-
42 platform Qt library, particularly pmchart(1) and pmtime(1).
43
44 With Qt v4 reaching end-of-life in 2015 we have removed support for all
45 versions before Qt v5. In addition, some features are missing in early
46 versions of Qt v5 that are now mandatory when building and using PCP Qt
47 tools. As a result the minimum required version of Qt for PCP v6 and
48 beyond is now Qt 5.6.
49
51 Versions of PCP before v6 used a combination of both Mozilla NSS (Net‐
52 work Security Services) and OpenSSL for the encryption component of the
53 secure sockets functionality. Starting with PCP v6 this has been sim‐
54 plified into exclusive use of OpenSSL for all use of encryption across
55 PCP. This change affects configuration of optional functionality in
56 pmcd(1) and PMAPI(3) client tools using secure sockets.
57
58 The net effect of this change is that encryption is configured in the
59 same ways, using the same certificates, across the HTTPS functionality
60 in pmproxy(1), as well as the encrypted PCP protocol functionality be‐
61 tween pmcd, pmproxy and PMAPI client tools. Additionally, the Redis
62 service used by pmseries(1) and pmproxy also exclusively uses OpenSSL,
63 and in a manner similar to PCP, which makes administering these ser‐
64 vices significantly simpler.
65
67 The sar2pcp(1) and iostat2pcp(1) utilities are deprecated, and will be
68 retired in a future version of PCP (v7). This is being replaced by na‐
69 tive support for generating PCP archives within the tools of the sys‐
70 stat package (which provides sar itself, as well as the sadf utility
71 which produces PCP archives via the -l option).
72
74 Earlier versions of PCP (prior to v5.1.1) provided a shell script that
75 was used internally by pmlogconf(1), located in the PCP_BINADM_DIR di‐
76 rectory, named pmlogconf-setup. This script has been retired. The
77 equivalent functionality remains available in the unlikely event it
78 should be needed via the -s or --setup option to pmlogconf(1).
79
80 The version 1 pmlogconf-setup configuration file format (from IRIX) was
81 also retired in this release, after more than 10 years of automatic
82 transition to version 2 format by pmlogconf.
83
85 The standalone PCP daemon manager pmmgr has been retired from PCP
86 v5.2.0 onward. It was phased out in favour of the simpler pmfind(1)
87 service for setting up pmie(1) and pmlogger(1) ``farms'' of discovered
88 PCP collector systems with pmfind_check(1). The new mechanisms, espe‐
89 cially when integrated with systemd, require no additional daemons and
90 are better integrated with the pmie and pmlogger service management
91 used elsewhere in PCP.
92
94 The pcp-collectl utility has been superceded by pmrep(1) from PCP v5
95 onward.
96
97 The equivalent of pcp-collectl subsystem reporting is achieved as fol‐
98 lows:
99
100 pmrep :collectl-sc
101 Processor subsystem view.
102
103 pmrep :collectl-sm
104 Memory subsystem view.
105
106 pmrep :collectl-sd
107 Aggregate disks view.
108
109 pmrep :collectl-sD
110 Per-disk-device view.
111
112 pmrep :collectl-dm-sD
113 Device mapper view.
114
115 pmrep :collectl-sn
116 Network subsystem view.
117
119 The standalone web applications packaged with older PCP versions have
120 been superceded by grafana-server(1) with the grafana-pcp plugin
121 https://github.com/performancecopilot/grafana-pcp.
122
123 This plugin provides an implementation of the Vector application, as
124 well as data sources for pmdabpftrace(1) (bpftrace(8) scripts) and pm‐
125 series(1) (fast, scalable Redis-based time series analysis).
126
128 The pmwebd daemon has been superceded by pmproxy(1) from PCP v5 onward.
129
130 By default, pmproxy will now listen on both its original port (44322)
131 and the PCP web API port (44323) when the time series support is built.
132
133 pmproxy provides a compatible implementation of the live PMWEBAPI(3)
134 interfaces used traditionally by the Vector web application (see the
135 ``PCP-WEBAPPS'' section). It also provides extensions to the original
136 pmwebd REST APIs (such as derived metrics, namespace lookups and in‐
137 stance domain profiles), support for the HTTPS protocol, and fast,
138 scalable time series querying using the pmseries(1) REST API and redis-
139 server(1).
140
141 The partial Graphite API emulation provided by pmwebd has not been re-
142 implemented - applications wishing to use similar services could use
143 the scalable time series REST APIs described on PMWEBAPI(3).
144
146 pcp(1), pmcd(1), iostat2pcp(1), sar2pcp(1), pmrep(1), pmfind(1),
147 pmfind_check(1), pmlogconf(1), pmproxy(1), pmseries(1), pmdabpf‐
148 trace(1), python(1), redis-server(1), grafana-server(1), mmv_stats_reg‐
149 ister(3), LOGIMPORT(3), PMAPI(3), PMDA(3) and PMWEBAPI(3).
150
151
152
153Performance Co-Pilot PCP PCPCOMPAT(1)