# pcpcompat

## 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) 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) interfaces for the PMAPI(3) (Performance
           Metrics API), the PMDA(3) API (Performance Metrics Domain Agents),
           the **mmv_stats_register**(3) API (Memory-Mapped Values) and PCP
           archive creation LOGIMPORT(3) 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) and pmtime(1).
    
           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) and PMAPI(3) 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), 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) 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) and iostat2pcp(1) 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), 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).
    
           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) service for setting up pmie(1) and pmlogger(1) ``farms''
           of discovered PCP collector systems with pmfind_check(1).  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) 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) (**bpftrace**(8) scripts)
           and pmseries(1) (fast, scalable, distributed time series
           analysis).
    


## PMWEBD



           The **pmwebd** daemon has been superseded 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 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).
    


* * *