From 0b77ce60b4bdad3e462afcbb1f1d5985609a977a Mon Sep 17 00:00:00 2001 From: Mark Goodwin Date: Sun, 20 Oct 2019 00:09:24 +1100 Subject: [PATCH] update to pcp v5.0.0 --- pcp.spec | 488 +++++++++++------------------- pmcd-pmlogger-local-context.patch | 26 ++ sources | 7 +- 3 files changed, 208 insertions(+), 313 deletions(-) create mode 100644 pmcd-pmlogger-local-context.patch diff --git a/pcp.spec b/pcp.spec index ff436bc..17453aa 100644 --- a/pcp.spec +++ b/pcp.spec @@ -1,18 +1,13 @@ Name: pcp -Version: 4.3.4 -Release: 3%{?dist} +Version: 5.0.0 +Release: 1%{?dist} Summary: System-level performance monitoring and performance management License: GPLv2+ and LGPLv2+ and CC-BY URL: https://pcp.io %global bintray https://bintray.com/artifact/download -%global github https://github.com/performancecopilot +Source0: %{bintray}/pcp/source/pcp-%{version}.src.tar.gz -Source0: %{bintray}/download/pcp/source/pcp-%{version}.src.tar.gz -Source1: %{github}/pcp-webapp-vector/archive/1.3.1-1/pcp-webapp-vector-1.3.1-1.tar.gz -Source2: %{github}/pcp-webapp-grafana/archive/1.9.1-2/pcp-webapp-grafana-1.9.1-2.tar.gz -Source3: %{github}/pcp-webapp-graphite/archive/0.9.10/pcp-webapp-graphite-0.9.10.tar.gz -Source4: %{github}/pcp-webapp-blinkenlights/archive/1.0.1/pcp-webapp-blinkenlights-1.0.1.tar.gz Patch0: pmcd-pmlogger-local-context.patch %if 0%{?fedora} >= 26 || 0%{?rhel} > 7 @@ -47,9 +42,12 @@ Patch0: pmcd-pmlogger-local-context.patch %global disable_podman 1 %endif -%global disable_microhttpd 0 -%global disable_webapps 0 -%global disable_cairo 0 +# libchan, libhdr_histogram and pmdastatsd +%if 0%{?fedora} > 31 || 0%{?rhel} > 8 +%global disable_statsd 0 +%else +%global disable_statsd 1 +%endif %if 0%{?rhel} > 7 || 0%{?fedora} >= 30 %global _with_python2 --with-python=no @@ -90,6 +88,17 @@ Patch0: pmcd-pmlogger-local-context.patch %global disable_bcc 1 %endif +# support for pmdabpftrace +%if 0%{?fedora} >= 30 || 0%{?rhel} > 8 +%ifarch s390 s390x armv7hl aarch64 i686 +%global disable_bpftrace 1 +%else +%global disable_bpftrace 0 +%endif +%else +%global disable_bpftrace 1 +%endif + # support for pmdajson %if 0%{?rhel} == 0 || 0%{?rhel} > 6 %if !%{disable_python2} || !%{disable_python3} @@ -132,7 +141,7 @@ Patch0: pmcd-pmlogger-local-context.patch %global disable_systemd 1 %endif -# systemtap static probing, missing before el6 and on some architectures +# static probes, missing before el6 and on some architectures %if 0%{?rhel} == 0 || 0%{?rhel} > 5 %global disable_sdt 0 %else @@ -143,14 +152,7 @@ Patch0: pmcd-pmlogger-local-context.patch %endif %endif -# boost c++ library, widely available -%if 0%{?rhel} == 0 || 0%{?rhel} > 5 -%global disable_boost 0 -%else -%global disable_boost 1 -%endif - -# libuv +# libuv async event library %if 0%{?fedora} >= 28 || 0%{?rhel} > 7 %global disable_libuv 0 %else @@ -179,6 +181,10 @@ Conflicts: librapi Obsoletes: pcp-pmda-kvm Provides: pcp-pmda-kvm +# PCP REST APIs are now provided by pmproxy +Obsoletes: pcp-webapi pcp-webapi-debuginfo +Provides: pcp-webapi + # https://fedoraproject.org/wiki/Packaging "C and C++" BuildRequires: gcc gcc-c++ BuildRequires: procps autoconf bison flex @@ -186,7 +192,6 @@ BuildRequires: nss-devel BuildRequires: rpm-devel BuildRequires: avahi-devel BuildRequires: xz-devel -BuildRequires: zlib-devel %if !%{disable_python2} %if 0%{?default_python} != 3 BuildRequires: python%{?default_python}-devel @@ -203,23 +208,17 @@ BuildRequires: cyrus-sasl-devel %if !%{disable_podman} BuildRequires: libvarlink-devel %endif +%if !%{disable_statsd} +BuildRequires: ragel chan-devel HdrHistogram_c-devel +%endif %if !%{disable_perfevent} BuildRequires: libpfm-devel >= 4 %endif -%if !%{disable_microhttpd} -BuildRequires: libmicrohttpd-devel -%endif -%if !%{disable_cairo} -BuildRequires: cairo-devel -%endif %if !%{disable_sdt} BuildRequires: systemtap-sdt-devel %endif -%if !%{disable_boost} -BuildRequires: boost-devel -%endif %if !%{disable_libuv} -BuildRequires: libuv-devel >= 1.16 +BuildRequires: libuv-devel >= 1.0 %endif %if !%{disable_openssl} BuildRequires: openssl-devel >= 1.1.1 @@ -255,10 +254,8 @@ Requires: pcp-selinux = %{version}-%{release} Obsoletes: pcp-gui-debuginfo %endif -Obsoletes: pcp-pmda-nvidia - -# Obsoletes for distros that already have single install pmda's with compat package Obsoletes: pcp-compat pcp-collector pcp-monitor +Obsoletes: pcp-pmda-nvidia Requires: pcp-libs = %{version}-%{release} @@ -323,12 +320,24 @@ Requires: pcp-libs = %{version}-%{release} %global _with_podman --with-podman=yes %endif +%if %{disable_statsd} +%global _with_statsd --with-statsd=no +%else +%global _with_statsd --with-statsd=yes +%endif + %if %{disable_bcc} %global _with_bcc --with-pmdabcc=no %else %global _with_bcc --with-pmdabcc=yes %endif +%if %{disable_bpftrace} +%global _with_bpftrace --with-pmdabpftrace=no +%else +%global _with_bpftrace --with-pmdabpftrace=yes +%endif + %if %{disable_json} %global _with_json --with-pmdajson=no %else @@ -347,12 +356,6 @@ Requires: pcp-libs = %{version}-%{release} %global _with_snmp --with-pmdasnmp=yes %endif -%if %{disable_webapps} -%global _with_webapps --with-webapps=no -%else -%global _with_webapps --with-webapps=yes -%endif - %global pmda_remove() %{expand: if [ %1 -eq 0 ] then @@ -445,7 +448,7 @@ Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs-devel = %{version}-%{release} Requires: pcp-devel = %{version}-%{release} %if !%{disable_libuv} -Requires: libuv-devel >= 1.16 +Requires: libuv-devel >= 1.0 %endif Obsoletes: pcp-gui-testsuite # The following are inherited from pcp-collector and pcp-monitor, @@ -462,16 +465,22 @@ Requires: pcp-pmda-lustrecomm pcp-pmda-logger pcp-pmda-docker pcp-pmda-bind2 %if !%{disable_podman} Requires: pcp-pmda-podman %endif +%if !%{disable_statsd} +Requires: pcp-pmda-statsd +%endif %if !%{disable_nutcracker} Requires: pcp-pmda-nutcracker %endif %if !%{disable_bcc} Requires: pcp-pmda-bcc %endif +%if !%{disable_bpftrace} +Requires: pcp-pmda-bpftrace +%endif %if !%{disable_python2} || !%{disable_python3} Requires: pcp-pmda-gluster pcp-pmda-zswap pcp-pmda-unbound pcp-pmda-mic -Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-prometheus pcp-pmda-haproxy -Requires: pcp-pmda-lmsensors +Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-openmetrics pcp-pmda-haproxy +Requires: pcp-pmda-lmsensors pcp-pmda-mssql pcp-pmda-netcheck %endif %if !%{disable_snmp} Requires: pcp-pmda-snmp @@ -483,9 +492,6 @@ Requires: pcp-pmda-json Requires: pcp-pmda-rpm %endif Requires: pcp-pmda-summary pcp-pmda-trace pcp-pmda-weblog -%if !%{disable_microhttpd} -Requires: pcp-webapi -%endif %if !%{disable_python2} || !%{disable_python3} Requires: pcp-system-tools %endif @@ -516,100 +522,6 @@ daemons are running when appropriate, and manages their log rotation needs. It is an alternative to the cron-based pmlogger/pmie service scripts. -%if !%{disable_microhttpd} -# -# pcp-webapi -# -%package webapi -License: GPLv2+ -Summary: Performance Co-Pilot (PCP) web API service -URL: https://pcp.io -Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} -Requires: liberation-sans-fonts - -%description webapi -Provides a daemon (pmwebd) that binds a large subset of the Performance -Co-Pilot (PCP) client API (PMAPI) to RESTful web applications using the -HTTP (PMWEBAPI) protocol. -%endif - -%if !%{disable_webapps} -# -# pcp-webjs and pcp-webapp packages -# -%package webjs -License: ASL 2.0 and MIT and CC-BY and GPLv3 -Conflicts: pcp-webjs < 3.11.9 -%if !%{disable_noarch} -BuildArch: noarch -%endif -Requires: pcp-webapp-vector pcp-webapp-blinkenlights -Requires: pcp-webapp-graphite pcp-webapp-grafana -Summary: Performance Co-Pilot (PCP) web applications -URL: https://pcp.io - -%description webjs -Javascript web application content for the Performance Co-Pilot (PCP) -web service. - -%package webapp-vector -License: ASL 2.0 -%if !%{disable_noarch} -BuildArch: noarch -%endif -Summary: Vector web application for Performance Co-Pilot (PCP) -URL: https://github.com/Netflix/vector - -%description webapp-vector -Vector web application for the Performance Co-Pilot (PCP). - -%package webapp-grafana -License: ASL 2.0 -Conflicts: pcp-webjs < 3.10.4 -%if !%{disable_noarch} -BuildArch: noarch -%endif -Summary: Grafana web application for Performance Co-Pilot (PCP) -URL: https://grafana.org - -%description webapp-grafana -Grafana is an open source, feature rich metrics dashboard and graph -editor. This package provides a Grafana that uses the Performance -Co-Pilot (PCP) as the data repository. Other Grafana backends are -not used. - -Grafana can render time series dashboards at the browser via flot.js -(more interactive, slower, for beefy browsers) or alternately at the -server via png (less interactive, faster). - -%package webapp-graphite -License: ASL 2.0 and GPLv3 -Conflicts: pcp-webjs < 3.10.4 -%if !%{disable_noarch} -BuildArch: noarch -%endif -Summary: Graphite web application for Performance Co-Pilot (PCP) -URL: http://graphite.readthedocs.org - -%description webapp-graphite -Graphite is a highly scalable real-time graphing system. This package -provides a graphite version that uses the Performance Co-Pilot (PCP) -as the data repository, and Graphites web interface renders it. The -Carbon and Whisper subsystems of Graphite are not included nor used. - -%package webapp-blinkenlights -License: ASL 2.0 -%if !%{disable_noarch} -BuildArch: noarch -%endif -Summary: Blinking lights web application for Performance Co-Pilot (PCP) -URL: https://pcp.io - -%description webapp-blinkenlights -Demo web application showing traffic lights that change colour based -on the periodic evaluation of performance metric expressions. -%endif - # # perl-PCP-PMDA. This is the PCP agent perl binding. # @@ -936,6 +848,22 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for collecting podman container and pod statistics through libvarlink. %endif +%if !%{disable_statsd} +# +# pcp-pmda-statsd +# +%package pmda-statsd +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics from statsd +URL: https://pcp.io +Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} +Requires: libchan.so.0() HdrHistogram_c + +%description pmda-statsd +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting statistics from the statsd daemon. +%endif + %if !%{disable_perfevent} # # pcp-pmda-perfevent @@ -1432,6 +1360,23 @@ extracting performance metrics from eBPF/BCC Python modules. # end pcp-pmda-bcc %endif +%if !%{disable_bpftrace} +# +# pcp-pmda-bpftrace +# +%package pmda-bpftrace +License: ASL 2.0 and GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics from bpftrace scripts +URL: https://pcp.io +Requires: bpftrace >= 0.9.2 +Requires: python3-pcp +Requires: python3 >= 3.6 +%description pmda-bpftrace +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +extracting performance metrics from bpftrace scripts. +# end pcp-pmda-bpftrace +%endif + %if !%{disable_python2} || !%{disable_python3} # # pcp-pmda-gluster @@ -1627,11 +1572,11 @@ target. #end pcp-pmda-lio # -# pcp-pmda-prometheus +# pcp-pmda-openmetrics # -%package pmda-prometheus +%package pmda-openmetrics License: GPLv2+ -Summary: Performance Co-Pilot (PCP) metrics from Prometheus endpoints +Summary: Performance Co-Pilot (PCP) metrics from OpenMetrics endpoints URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %if !%{disable_python3} @@ -1643,11 +1588,13 @@ Requires: %{__python2}-pcp Requires: %{__python2}-requests BuildRequires: %{__python2}-requests %endif +Obsoletes: pcp-pmda-prometheus +Provides: pcp-pmda-prometheus -%description pmda-prometheus +%description pmda-openmetrics This package contains the PCP Performance Metrics Domain Agent (PMDA) for -extracting statistics from programs instrumented as Prometheus endpoints. -#end pcp-pmda-prometheus +extracting metrics from OpenMetrics (https://openmetrics.io/) endpoints. +#end pcp-pmda-openmetrics # # pcp-pmda-lmsensors @@ -1669,6 +1616,42 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for collecting metrics about the Linux hardware monitoring sensors. # end pcp-pmda-lmsensors +# +# pcp-pmda-mssql +# +%package pmda-mssql +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for Microsoft SQL Server +URL: https://pcp.io +Requires: pcp-libs = %{version}-%{release} +%if !%{disable_python3} +Requires: python3-pcp +%else +Requires: %{__python2}-pcp +%endif +%description pmda-mssql +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics from Microsoft SQL Server. +# end pcp-pmda-mssql + +# +# pcp-pmda-netcheck +# +%package pmda-netcheck +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for simple network checks +URL: https://pcp.io +Requires: pcp-libs = %{version}-%{release} +%if !%{disable_python3} +Requires: python3-pcp +%else +Requires: %{__python2}-pcp +%endif +%description pmda-netcheck +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics from simple network checks. +# end pcp-pmda-netcheck + %endif # !%{disable_python2} || !%{disable_python3} %if !%{disable_json} @@ -2086,7 +2069,7 @@ BuildRequires: setools %else BuildRequires: setools-console %endif -Requires: policycoreutils +Requires: policycoreutils selinux-policy-targeted %description selinux This package contains SELinux support for PCP. The package contains @@ -2095,10 +2078,6 @@ updated policy package. %endif %prep -%setup -q -T -D -a 1 -c -n vector -%setup -q -T -D -a 2 -c -n grafana -%setup -q -T -D -a 3 -c -n graphite -%setup -q -T -D -a 4 -c -n blinkenlights %setup -q %patch0 -p1 @@ -2106,7 +2085,7 @@ updated policy package. %if !%{disable_python2} && 0%{?default_python} != 3 export PYTHON=python%{?default_python} %endif -%configure %{?_with_initd} %{?_with_doc} %{?_with_dstat} %{?_with_ib} %{?_with_podman} %{?_with_perfevent} %{?_with_bcc} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_webapps} %{?_with_python2} +%configure %{?_with_initd} %{?_with_doc} %{?_with_dstat} %{?_with_ib} %{?_with_podman} %{?_with_statsd} %{?_with_perfevent} %{?_with_bcc} %{?_with_bpftrace} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_python2} make %{?_smp_mflags} default_pcp %install @@ -2126,20 +2105,6 @@ rm -f $RPM_BUILD_ROOT/%{_bindir}/sheet2pcp $RPM_BUILD_ROOT/%{_mandir}/man1/sheet rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/configsz.h rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/platformsz.h -%if %{disable_microhttpd} -rm -fr $RPM_BUILD_ROOT/%{_confdir}/pmwebd -rm -fr $RPM_BUILD_ROOT/%{_initddir}/pmwebd -rm -fr $RPM_BUILD_ROOT/%{_unitdir}/pmwebd.service -rm -f $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin/pmwebd -%endif -%if !%{disable_webapps} -for app in vector grafana graphite blinkenlights; do - pwd - webapp=`find ../$app -mindepth 1 -maxdepth 1` - mv $webapp $RPM_BUILD_ROOT/%{_datadir}/pcp/webapps/$app -done -%endif - %if %{disable_infiniband} # remove pmdainfiniband on platforms lacking IB devel packages. rm -f $RPM_BUILD_ROOT/%{_pmdasdir}/ib @@ -2165,7 +2130,7 @@ desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/pmchart.desktop %endif # default chkconfig off for Fedora and RHEL -for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmwebd,pmmgr,pmproxy}; do +for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmmgr,pmproxy}; do test -f "$f" || continue sed -i -e '/^# chkconfig/s/:.*$/: - 95 05/' -e '/^# Default-Start:/s/:.*$/:/' $f done @@ -2206,6 +2171,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^samba' |\ grep -E -v '^slurm' |\ grep -E -v '^snmp' |\ + grep -E -v '^statsd' |\ grep -E -v '^vmware' |\ grep -E -v '^zimbra' |\ grep -E -v '^dm' |\ @@ -2219,6 +2185,8 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^logger' |\ grep -E -v '^mailq' |\ grep -E -v '^mounts' |\ + grep -E -v '^mssql' |\ + grep -E -v '^netcheck' |\ grep -E -v '^nvidia' |\ grep -E -v '^roomtemp' |\ grep -E -v '^sendmail' |\ @@ -2231,6 +2199,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^json' |\ grep -E -v '^mic' |\ grep -E -v '^bcc' |\ + grep -E -v '^bpftrace' |\ grep -E -v '^gluster' |\ grep -E -v '^zswap' |\ grep -E -v '^unbound' |\ @@ -2239,7 +2208,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ # all base pcp package files except those split out into sub-packages ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ - grep -E -v 'pmiostat|pmcollectl|zabbix|zbxpcp|dstat' |\ + grep -E -v 'pmiostat|zabbix|zbxpcp|dstat' |\ grep -E -v 'pmrep|pcp2graphite|pcp2influxdb|pcp2zabbix' |\ grep -E -v 'pcp2elasticsearch|pcp2json|pcp2xlsx|pcp2xml' |\ grep -E -v 'pcp2spark' |\ @@ -2247,11 +2216,11 @@ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ sed -e 's#^#'%{_bindir}'\/#' >base_bin.list # Separate the pcp-system-tools package files. -# pmcollectl and pmiostat are back-compat symlinks to their -# pcp(1) sub-command variants so are also in pcp-system-tools. +# pmiostat is a back-compat symlink to its pcp(1) sub-command variant +# so its also in pcp-system-tools. %if !%{disable_python2} || !%{disable_python3} ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ - egrep -e 'pmiostat|pmcollectl|pmrep|dstat' |\ + egrep -e 'pmiostat|pmrep|dstat' |\ sed -e 's#^#'%{_bindir}'\/#' >pcp-system-tools.list ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ egrep -e 'atop|collectl|dmcache|dstat|free|iostat|ipcs|lvmcache|mpstat' \ @@ -2293,7 +2262,7 @@ ls -1 $RPM_BUILD_ROOT/%{_logconfdir}/ |\ sed -e 's#^#'%{_logconfdir}'\/#' |\ grep -E -v 'zeroconf' >pcp-logconf.list cat base_pmdas.list base_bin.list base_exec.list pcp-logconf.list |\ - grep -E -v 'pmdaib|pmmgr|pmweb|pmsnap|2pcp|pmdas/systemd' |\ + grep -E -v 'pmdaib|pmmgr|pmsnap|2pcp|pmdas/systemd' |\ grep -E -v "$PCP_GUI|pixmaps|hicolor|pcp-doc|tutorials|selinux" |\ grep -E -v %{_confdir} | grep -E -v %{_logsdir} > base.list @@ -2335,72 +2304,8 @@ exit 0 getent group pcp >/dev/null || groupadd -r pcp getent passwd pcp >/dev/null || \ useradd -c "Performance Co-Pilot" -g pcp -d %{_localstatedir}/lib/pcp -M -r -s /sbin/nologin pcp -PCP_CONFIG_DIR=%{_localstatedir}/lib/pcp/config -PCP_SYSCONF_DIR=%{_confdir} -PCP_LOG_DIR=%{_logsdir} -PCP_ETC_DIR=%{_sysconfdir} -# rename crontab files to align with current Fedora packaging guidelines -for crontab in pmlogger pmie -do - test -f "$PCP_ETC_DIR/cron.d/$crontab" || continue - mv -f "$PCP_ETC_DIR/cron.d/$crontab" "$PCP_ETC_DIR/cron.d/pcp-$crontab" -done -# produce a script to run post-install to move configs to their new homes -save_configs_script() -{ - _new="$1" - shift - for _dir - do - [ "$_dir" = "$_new" ] && continue - if [ -d "$_dir" ] - then - ( cd "$_dir" ; find . -maxdepth 1 -type f ) | sed -e 's/^\.\///' \ - | while read _file - do - [ "$_file" = "control" ] && continue - _want=true - if [ -f "$_new/$_file" ] - then - # file exists in both directories, pick the more - # recently modified one - _try=`find "$_dir/$_file" -newer "$_new/$_file" -print` - [ -n "$_try" ] || _want=false - fi - $_want && echo cp -p "$_dir/$_file" "$_new/$_file" - done - fi - done -} -# migrate and clean configs if we have had a previous in-use installation -[ -d "$PCP_LOG_DIR" ] || exit 0 # no configuration file upgrades required -rm -f "$PCP_LOG_DIR/configs.sh" -for daemon in pmie pmlogger -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_CONFIG_DIR/$daemon" \ - "$PCP_SYSCONF_DIR/$daemon" -done -for daemon in pmcd pmproxy -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_SYSCONF_DIR/$daemon"\ - "$PCP_CONFIG_DIR/$daemon" /etc/$daemon -done exit 0 -%if !%{disable_microhttpd} -%preun webapi -if [ "$1" -eq 0 ] -then -%if !%{disable_systemd} - systemctl --no-reload disable pmwebd.service >/dev/null 2>&1 - systemctl stop pmwebd.service >/dev/null 2>&1 -%else - /sbin/service pmwebd stop >/dev/null 2>&1 - /sbin/chkconfig --del pmwebd >/dev/null 2>&1 -%endif -fi -%endif - %preun manager if [ "$1" -eq 0 ] then @@ -2438,6 +2343,11 @@ fi %{pmda_remove "$1" "podman"} %endif #preun pmda-podman +%if !%{disable_statsd} +%preun pmda-statsd +%{pmda_remove "$1" "statsd"} +%endif #preun pmda-statsd + %if !%{disable_json} %preun pmda-json %{pmda_remove "$1" "json"} @@ -2496,8 +2406,8 @@ fi %preun pmda-lio %{pmda_remove "$1" "lio"} -%preun pmda-prometheus -%{pmda_remove "$1" "prometheus"} +%preun pmda-openmetrics +%{pmda_remove "$1" "openmetrics"} %preun pmda-lustre %{pmda_remove "$1" "lustre"} @@ -2551,6 +2461,11 @@ fi %{pmda_remove "$1" "bcc"} %endif +%if !%{disable_bpftrace} +%preun pmda-bpftrace +%{pmda_remove "$1" "bpftrace"} +%endif + %if !%{disable_python2} || !%{disable_python3} %preun pmda-gluster %{pmda_remove "$1" "gluster"} @@ -2573,6 +2488,12 @@ fi %preun pmda-lmsensors %{pmda_remove "$1" "lmsensors"} +%preun pmda-mssql +%{pmda_remove "$1" "mssql"} + +%preun pmda-netcheck +%{pmda_remove "$1" "netcheck"} + %endif # !%{disable_python[2,3]} %preun pmda-apache @@ -2664,17 +2585,6 @@ then rm -f "$PCP_PMNS_DIR/.NeedRebuild" >/dev/null 2>&1 fi -%if !%{disable_microhttpd} -%post webapi -chown -R pcp:pcp %{_logsdir}/pmwebd 2>/dev/null -%if !%{disable_systemd} - systemctl condrestart pmwebd.service >/dev/null 2>&1 -%else - /sbin/chkconfig --add pmwebd >/dev/null 2>&1 - /sbin/service pmwebd condrestart -%endif -%endif - %post manager chown -R pcp:pcp %{_logsdir}/pmmgr 2>/dev/null %if !%{disable_systemd} @@ -2729,12 +2639,7 @@ pmieconf -c enable dmthin %endif %post -PCP_LOG_DIR=%{_logsdir} PCP_PMNS_DIR=%{_pmnsdir} -# restore saved configs, if any -test -s "$PCP_LOG_DIR/configs.sh" && source "$PCP_LOG_DIR/configs.sh" -rm -f $PCP_LOG_DIR/configs.sh - chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmlogger 2>/dev/null chown -R pcp:pcp %{_logsdir}/sa 2>/dev/null @@ -2761,7 +2666,7 @@ chmod 644 "$PCP_PMNS_DIR/.NeedRebuild" /sbin/service pmproxy condrestart %endif -cd $PCP_PMNS_DIR && ./Rebuild -s && rm -f .NeedRebuild +cd "$PCP_PMNS_DIR" && ./Rebuild -s && rm -f .NeedRebuild cd %if 0%{?fedora} >= 26 || 0%{?rhel} > 7 @@ -2949,51 +2854,6 @@ cd %defattr(-,pcpqa,pcpqa) %{_testsdir} -%if !%{disable_microhttpd} -%files webapi -%{_initddir}/pmwebd -%if !%{disable_systemd} -%{_unitdir}/pmwebd.service -%endif -%{_libexecdir}/pcp/bin/pmwebd -%attr(0775,pcp,pcp) %{_logsdir}/pmwebd -%{_confdir}/pmwebd -%config(noreplace) %{_confdir}/pmwebd/pmwebd.options -# duplicate pcp, pcp-webapi and pcp-webjs directories, but rpm copes with that. -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%endif - -%if !%{disable_webapps} -%files webjs -# duplicate pcp, pcp-webapi and pcp-webjs directories, but rpm copes with that. -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%{_datadir}/pcp/webapps/*.png -%{_datadir}/pcp/webapps/*.ico -%{_datadir}/pcp/webapps/*.html - -%files webapp-blinkenlights -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%{_datadir}/pcp/webapps/blinkenlights - -%files webapp-grafana -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%{_datadir}/pcp/webapps/grafana - -%files webapp-graphite -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%{_datadir}/pcp/webapps/graphite - -%files webapp-vector -%dir %{_datadir}/pcp -%dir %{_datadir}/pcp/webapps -%{_datadir}/pcp/webapps/vector -%endif - %files manager %{_initddir}/pmmgr %if !%{disable_systemd} @@ -3024,6 +2884,12 @@ cd %{_pmdasdir}/podman %endif +%if !%{disable_statsd} +%files pmda-statsd +%{_pmdasdir}/statsd +%config(noreplace) %{_pmdasdir}/statsd/statsd.ini +%endif + %if !%{disable_perfevent} %files pmda-perfevent %{_pmdasdir}/perfevent @@ -3069,8 +2935,8 @@ cd %files pmda-lio %{_pmdasdir}/lio -%files pmda-prometheus -%{_pmdasdir}/prometheus +%files pmda-openmetrics +%{_pmdasdir}/openmetrics %files pmda-lustre %{_pmdasdir}/lustre @@ -3148,6 +3014,11 @@ cd %{_pmdasdir}/bcc %endif +%if !%{disable_bpftrace} +%files pmda-bpftrace +%{_pmdasdir}/bpftrace +%endif + %if !%{disable_python2} || !%{disable_python3} %files pmda-gluster %{_pmdasdir}/gluster @@ -3196,6 +3067,12 @@ cd %files pmda-lmsensors %{_pmdasdir}/lmsensors +%files pmda-mssql +%{_pmdasdir}/mssql + +%files pmda-netcheck +%{_pmdasdir}/netcheck + %endif # !%{disable_python2} || !%{disable_python3} %files export-zabbix-agent @@ -3307,11 +3184,8 @@ cd %endif %changelog -* Thu Oct 03 2019 Miro Hrončok - 4.3.4-3 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Mon Aug 19 2019 Miro Hrončok - 4.3.4-2 -- Rebuilt for Python 3.8 +* Fri Oct 11 2019 Mark Goodwin - 5.0.0-1 +- Update to latest PCP sources. * Fri Aug 16 2019 Nathan Scott - 4.3.4-1 - Resolve bootup issues with pmlogger service (BZ 1737091, BZ 1721223) diff --git a/pmcd-pmlogger-local-context.patch b/pmcd-pmlogger-local-context.patch new file mode 100644 index 0000000..1c1e90d --- /dev/null +++ b/pmcd-pmlogger-local-context.patch @@ -0,0 +1,26 @@ +diff --git a/src/pmcd/pmcd.defaults b/src/pmcd/pmcd.defaults +index 83ee4d9a9..56e125553 100644 +--- a/src/pmcd/pmcd.defaults ++++ b/src/pmcd/pmcd.defaults +@@ -4,7 +4,7 @@ + # Behaviour regarding listening on external-facing interfaces; + # unset PMCD_LOCAL to allow connections from remote hosts. + # A value of 0 permits remote connections, 1 permits local only. +-# PMCD_LOCAL=1 ++PMCD_LOCAL=1 + + # Max length to which the queue of pending connections may grow + # A value of 5 is the default. +diff --git a/src/pmlogger/pmlogger.defaults b/src/pmlogger/pmlogger.defaults +index 5462403ec..261a79039 100644 +--- a/src/pmlogger/pmlogger.defaults ++++ b/src/pmlogger/pmlogger.defaults +@@ -4,7 +4,7 @@ + # Behaviour regarding listening on external-facing interfaces; + # unset PMLOGGER_LOCAL to allow connections from remote hosts. + # A value of 0 permits remote connections, 1 permits local only. +-# PMLOGGER_LOCAL=1 ++PMLOGGER_LOCAL=1 + + # Max length to which the queue of pending connections may grow + # A value of 5 is the default. diff --git a/sources b/sources index 0c38edf..63d048e 100644 --- a/sources +++ b/sources @@ -1,6 +1 @@ -SHA512 (pcp-4.3.4.src.tar.gz) = 27e7d3558253edde342256b4f750160c216bb8323c47dd01ef8d67d49e702d1d70ba406cafdcbf6867ad63e460279e8214c39a1fd20b6b8c781dc33920587569 -SHA512 (pcp-webapp-blinkenlights-1.0.1.tar.gz) = dadf0bc0742a3344a75f8f304851762572ddc9a5c7c66fd085adcabb70f9e7a9b2c9b6095a8fb358f6a6c64dbf41cf245e2da74a60b8120880f314b6ed3d271c -SHA512 (pcp-webapp-grafana-1.9.1-2.tar.gz) = abd0f360b057853d343e506e352a37d16f78bbae6760124ecdfab0e43ffcf3b31404311f1fe5c962e8abdbf2ad8699df3f27e2920f03f1a10bca3c0e01179e21 -SHA512 (pcp-webapp-graphite-0.9.10.tar.gz) = f716e5145e5d39b54be02e39202c51bdd1158d56fa16185a591c0f54fb376a637653f0c13aa9c5ad5700fc62d0c71163e94b9fa689fabe3e6de4ddf19fa827fa -SHA512 (pcp-webapp-vector-1.3.1-1.tar.gz) = b1463d4da3727f130752699dd433e997212c19241ac440df389c1153e468ace840b7d5f43a37b2173e4eee4f4a807338a3c40cc9635801e626c1530baf46e289 -SHA512 (pmcd-pmlogger-local-context.patch) = 8f4b6b49494781d0a711ac27738a75b1adead72cb1baef9a78754686c48ae2d278d691108233e9cf9ad33fede5ba7b7a43f4674205b9bf448f267c844ddc1a01 +SHA512 (pcp-5.0.0.src.tar.gz) = 4a00b199343fcc33b9e4f262974e9d075892a76af92811428221ea9fbacf479a4852e2734caaff56fa6b492b0440e34db55256c91e4b89a9fe52a775645adf89