forked from performancecopilot/pcp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
6148 lines (5952 loc) · 329 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
pcp-6.2.1 (10 April 2024)
- Work-in-progress.
pcp-6.2.0 (12 February 2024)
- Client tools and utilities:
pmlogger: default to creating version 3 PCP archives
pmie, pmlogger, pmcd, pmproxy: init script hardening to
run less as root:root, more as pcp:pcp and more safely
pcp-reboot-init: new systemd service for $PCP_RC_DIR setup
pcp2arrow: new, export metrics to parquet format for pandas
pcp-atop: deterministic process sort when handling NULLs
pcp-atop: update to v2.10.0 upstream code
pcp-htop: update to latest upstream fixes
pcp-geolocate: function with older versions of python
pcp-meminfo: resolve possible 'broken pipe' diagnostics
pcp-ss: fix handling of listening state sockets to match ss
pcp-ss: fix the UDP UNCONN vs LISTEN state handling
- PMDA additions, enhancements and bug fixes:
pmdaproc: improvements for process accounting metrics
pmdalinux: add pgpromote* and pgdemote* memory metrics
pmdalinux: add metric sysfs.module.zswap.max_pool_percent
pmdalinux: add new SNMP metric network.ip.outtransmits
pmdasummary: send state change 0 (no change) back to pmcd
pmdapostgresql: support the psycopg3 python module as well
pmdaopenmetrics: kepler support - live metrics and logging
- Server-side utilities and log management scripts:
pmlogrewrite, pmlogredact: fix for missing data volumes
pmcd: cosmetic change to avoid pipe2 name clash
runaspcp: new helper utility for unprivileged rc scripts
pmnsmerge: be more defensive in qsort comparison routine
pmlogsize: fix qsort comparison function handling of equality
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: pmOpenLog refactor for handling previous log files
libpcp: new __pmCleanMapDir routine to aid log culling
libpcp & pmcd: READY-NOT-READY hardening
libpcp: avoid possible thread issues (coverity)
libpcp: refactor pmDupContext for thread safety
libpcp_import: add guard in pmiPutMark to prevent SIGSEGV
- Build, infrastructure and packaging updates:
build: changes to re-enable builds for FreeBSD 12, 13, 14
build: add diffutils rpm dep as pmdaproc script uses diff
build: add main.yml for building and publishing container
build: resolve compiler warnings in various tools/libraries
packaging: use tmpfiles.d method to create PCP_RUN_DIR
build: packaging changes for openSUSE 15.5 and 15.6
debian: do not ship empty directory /usr/lib/pkgconfig
build: el10 systemd-presets for pmcd/pmie/pmlogger enabling
build: drop rpm dep on bpftool as local version used only
build: change perl YAML::XS::LibYAML module to YAML::XS
- Security Enhanced Linux:
selinux: policy improvements for CentOS/RHEL 7 and 8
- Documentation:
docs: Fedora 39 found some tbl(1)/troff(1) issues, fix
docs: add an explicit code-of-conduct for PCP
docs: pmns(5) note that metric names must only contain ASCII
docs: update the BPF README to describe bpftool reality
pcp-6.1.1 (17 November 2023)
- Client tools and utilities:
pmie: add -o/--format to control output format with archives
pcp-geolocate: automatic latitude and longitude metric labels
pcp-atop: fix segv encountered on a multi-node NUMA system
pcp-atop: add last level cache support using pmdaresctrl
pcp-htop: updated with latest fixes from htop.dev
pcp-netstat: without time options report one sample only
pcp-netstat: add machine header info
pcp-meminfo: without time options report one sample only
pcp-meminfo: add machine header info
pcp-buddyinfo: resolve a key issue when using python v2
pcp-zoneinfo: ensure determinism in pcp-zoneinfo output
pcp-zoneinfo: fix failure with older PCP metric instances
- PMDA additions, enhancements and bug fixes:
pmdaresctrl: new PMDA for x86_64 last level cache metrics
pmdafarm: new Seagate Field Access Reliability Metrics PMDA
pmdadarwin: updated for changes in NFS stats management
pmdalinux: new mem.util metrics from recent kernel versions
pmdalinux: new networking metrics relating to MPTcpExt
pmdasockets: allow sockets with duplicate sources to exist
pmdabpftrace: rework exit/wait handling to avoid errors
pmdahaproxy: fixed connect script handling of string quoting
pmdastatsd: fixed metadata for a couple of metrics
pmdalinux: fixed semantics for mem.vmstat.nr_free_cma metric
pmdadenki: simplification and refactoring of metrics
pmdagfs2: correct permissions of several installed files
pmdakvm: fixed semantics for kvm.largepages metric
- Server-side utilities and log management scripts:
pmproxy: add support for HTTP compression
pmlogger: rework heuristic for Latest folio creation
pmlogctl: fix incorrect rewriting of PCP_ARCHIVE_DIR
pmlogredact: add latitude and longitude labels to redacted set
pmlogrewrite: resolve a small memory leak
pmlogrewrite: use PM_CTXFLAG_METADATA_ONLY for speed
pmcd: add $PMCD_CREDS_TIMEOUT as an alternative to -q
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: new PM_CTXFLAG_METADATA_ONLY flag for pmNewContext
libpcp: fix a couple of derived metric bugs
libpcp_web: implement config override by canonical env vars
- Misc build, infrastructure and packaging updates:
build: new CI build to keep PCP for MacOS up-to-date
build: several fixes to tools when compiling with clang
build: install pmlog[redact,reduce,rewrite] on default PATH
build: default to using a path-prefixed PCP_PYTHON_PROG
build: update the Fedora container to f38
build: drop of i386/i686 architectures from Fedora builds
build: enable build of pmdalibvirt on CentOS 7 platform
build: enable Qt6 in Fedora and post-RHEL-9 rpm spec files
build: add pyodbc rpm dep for pcp-pmda-mssql in RHEL 9
- Security Enhanced Linux:
selinux: allow pmproxy use the io_uring API
selinux: policy fixes for recent AVCs on RHEL 7.9
selinux: add netlink_kobject_uevent_socket getattr (bpftrace)
- Documentation:
man pages: change all to map font CW -> CR for latest groff
man: note pmseries Redis timeseries load order limitation
pcp-6.1.0 (5 September 2023)
- pmlogredact: new command for archive anonymisation
- pcp-atop: new bar graph visualisation mode
- pcp-atop: update to atoptool.nl 2.9.1 sources
- pcp-htop: support dynamic screens (user-configurable tabs)
- pcp-htop: update to latest upstream source
- pcp-htop: default screens for filesystems, disks and cgroups
- pcp-htop: non-default screens for several libbpf modules
- pcp-htop: fix mishandling of some process argument shading
- pcp-buddyinfo: new tool reporting Linux buddyinfo stats
- pcp-meminfo: new tool reporting Linux kernel memory stats
- pcp-netstat: new tool reporting networking statistics
- pcp-slabinfo: new tool reporting Linux slabinfo kernel stats
- pcp-zoneinfo: new tool reporting Linux zoneinfo kernel stats
- pmsleep,pmpause: add -w where option for systemd annotation
- pmieconf: move test_action from primary into a separate group
- pmieconf: update webhook action for better EDA integration
- pmlogconf: remove latency-inducing fsync on config write
- pmlogconf: updates for new metrics used in pcp-atop
- pmdalinux: add three new /proc/vmstat pscan/pgsteal metrics
- pmdalinux: fix bug when lsb-release is only /etc/*-release file
- pmdabpf: add -q/--tryload command line option
- pmdaopenmetrics: reduce transient instance logs, improve labels
- libpcp: improved SSL error reporting
- selinux: add policy updates for pmproxy (io_uring,ipc_lock)
- build: support for Qt6, drop remaining Qt4 configure-support
- build: updated licence strings in spec files to follow SPDX
- build: default to using a path-prefixed PCP_PYTHON_PROG
- build: fix several makefile clean targets for deb packagers
- build: configure.ac update to autoconf 2.71
- build: add tarball upload to release workflow
- docs: pmie updates to explain action behaviour with archives
- docs: retire "archive log" phrase from man pages and books
- docs: transition Artifactory (no free service) to Packagecloud
pcp-6.0.5 (26 June 2023)
- pmie: ensure pmie.log.YYYYMMDD is owned by pcp:pcp
- pcp2json: extend pcp2json with an option to send HTTP POSTs
- pmlogger: fix pidfile update; pmlogger.pid is for primary only
- pmdumptext: fix scaling when -i command line option is used
- pmlogextract: improve resilience in corner-case conditions
- pmdasmart: additional NVME power state metrics
- pmdasmart: additional NVME disk information metrics
- pmdasmart: update help with proper description of DC status
- pmdasmart: filter out zram devices when probing for devices
- pmdahacluster: handle pacemaker 2.1.5 crm_mon output changes
- pmcd: improve debugging flags and diagnostics in general
- libpcp_pmda: refactor and improve library diagnostics
- selinux: updates to policy for pmlogger and pmlogger_daily
- build: switch rpm spec files to SPDX license identifiers
- build, qa: numerous updates to improve PCP on OpenBSD
- build: switch from registry.centos.org to quay.io for el6/el7
- ci: add centos6 back into the fold as its on quay.io now
- ci: add Debian 12, drop Ubuntu 16 and Fedora 35
pcp-6.0.4 (15 May 2023)
- pmcd: propogate a new PMCD_HOSTNAME_CHANGE flag to clients
- pmdumplog: support preferred alternate name pmlogdump
- pmlogger: changes to accommodate PMCD_HOSTNAME_CHANGE
- pmlogger_janitor: new script called from pmlogger_check
- pmlogger: add -d directory argument for alternate naming schemes
- pmlogrewrite: fix remaining corner case for indom renumbering
- pmie: changes to accommodate PMCD_HOSTNAME_CHANGE
- pmie: catching SIGUSR1 triggers a pending task dump
- pmie_{check,daily}: change pmie.log handling regime
- pmieconf: add support for a webhook action to pmieconf
- pmieconf: add a wall rule action for adm group members
- pmieconf: add support for an action testing rule
- pmieconf: use correct pmieconf percent type for thermal throttle
- pmieconf: add minimum pct conjunction to entropy for small poolsizes
- pminfo: use -b to batch pmDesc retrievals as well as pmResult
- pmstat: fix corner case handling of automatic pmcd reconnect
- pcp2influxdb: add requests.post timeout to avoid hangs
- pcp-dstat: fixes CSV output to show all (not visible) plugins
- pcp-htop: support File Descriptor Meter
- pcp-htop: sync latest fixes from upstream htop
- pcp-mpstat: fixed broken pipe issue
- pcp-ps: fix exception handling for process name
- rc scripts: ensure pmcd.conf not rewritten unnecessarily
- pmdalinux: add a couple of new /proc/net/snmp ICMP metrics
- pmdalinux: add new network.tcp.tcpplbrehash metric
- pmdaproc: add new proc.smaps.pss_dirty metric
- pmdarabbitmq: add timeout handling to http requests
- pmdastatsd: stats and blocklisted metric names alignment
- libpcp: new pmAddDerivedText API for derived metric help text
- libpcp: check level parameter on entry to pmLookupText
- libpcp: new PMAPI error code addition for bad API arguments
- libpcp: allow derived metrics semantics of 'similar' indoms
- selinux: add missing context information on farm services
- build: fix a number of Debian sub-package dependency issues
pcp-6.0.3 (23 February 2023)
- build: fix Debian postinst script handling of missing systemctl
- pmdaproc: support per-cgroup IRQ PSI metrics in recent kernels
- pmdalinux: support for system wide IRQ PSI metrics in recent kernels
- pmlogrewrite: improved handling of unused instance domains
pcp-6.0.2 (12 February 2023)
- Client tools and utilities:
pcp-atop: update to latest upstream atoptool.nl sources
pcp-atop: cgroup, NUMA memory and NUMA CPU support
pcp-htop: update to latest upstream htop.dev sources
pcp-dstat: fix handling of --swap with -f (full) option
pcp-dstat: fix columns for --net-packets
pcp-mpstat: fix handling of log-once summary metric values
pcp-mpstat: improve error handling for the current values
pcp-ps: added capabilities to show N samples with archives
pcp-ps: fix handling of the -o option
pcp-ps: fix broken pipe errors when piping to head(1)
pcp-ps: fix process "START" column calculation and rounding
pcp-pidstat: fix broken pipe errors when piping to head(1)
pmdumplog: extend -x so -xxx reports timestamps in Epoch format
pmlogger: refactor getting FQDN for local host
- PMDA additions, enhancements and bug fixes:
pmdabpf: set config default for biosnoop module to disabled
pmdabpf: port forward to latest vendored libbpf-tools code
pmdalinux: boolean metric network.interface.virtual from sysfs
pmdalinux: more careful slabinfo 32/64 bit type multiplication
pmdalinux: add NUMA external fragmentation metric via sysfs
pmdalinux: fix pmid numbering issue with hinv.map.scsi_id
pmdanfsclient: fix srcport handling for RDMA and UDP mounts
pmdaopenmetrics: validate all names before using them for metrics
pmdaoverhead: new PMDA to measure overhead for groups of processes
pmdastatsd: static metric memory leak fix
pmdastatsd: ragel parser refactor and fix
- Server-side utilities and log management scripts:
pmieconf: new pmie rule checking file descriptor limits
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: fix buffer issue for user/group name lookups
libpcp_web: improve error handling in pmseries AST parser
- Misc build, infrastructure and packaging updates:
configure.ac: fixes for improved C99 compatibility
configure.ac: use QTDIR search path only when given
MacOS: build: fix shared library builds on modern Macs
OpenBSD: build updates for clang, Qt and openssl
libbpf: updated minimium version to 0.8.0, ARM and PPC support
Qt: update minimum required versions for libqwt
Drop no-longer-used pmlogger_daily_report systemd rpm spec code
Determine clang version without optional llvm-config utility
Another attempt to get the man/man-db/mandoc stuff sorted
- Security Enhanced Linux:
Policy updates for pmdastatsd
- Documentation and QA infrastructure:
Add help text for some OpenBSD kernel instance domains
Provide more detailed explanation for default PMLOGGER_INTERVAL
pmdaChildren(3): clarify the memory allocation scheme
pcp-ps(1) man page fixes.
pcp-6.0.1 (27 October 2022)
- Security Enhanced Linux:
selinux: rework policy to use optional_policy
selinux: rework policy to use an independent policy
selinux: new cluster_exec_t policy handling for pmdahacluster(1)
selinux: retire those parts of the build affecting CentOS 6
- PMDA additions, enhancements and bug fixes:
pmdabpf: set perf_buffer__poll timeout to 0 for optimal sampling
pmdabpf: add CO-RE biosnoop
pmdabpf: no BPF debug messages unless debugging (-Ddev0)
pmdalinux: add "squashfs" to the list of ignored filesystem types
pmdasnmp: install agent specific configuration file to PMDATMPDIR
pmdakvm: initialise perf_event interface only if/when needed
- Client tools and utilities:
pcp-ps: initial version of a PCP implementation of ps(1)
pcp-dstat: add --nomissed command line option for large systems
pmfind, libpcp_web: MMV and shutdown memory management fixes
pmlogreduce: fix corner-case in temporal index generation
pmlogcheck: tighten some pmlogcheck pass0 checks
pmseries: fix sampling when start < first sample or series has gaps
shell completion: improve pmrep/zsh instance completion in live mode
shell tools: convert fgrep and egrep over to grep -F and -E
- Server-side utilities and log management scripts:
pmlogger_daily_report: no longer needs any systemd support now
pmlogger_daily.sh: fix pmlogger_daily_report test for zeroconf
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp_web: fix race conditions affecting pmproxy
libpcp_web: allow scalar operands in pmseries expressions
libpcp_web: add pmseries float multiplication
- Misc build, infrastructure and packaging updates:
build: add PCP archive analysis container
build: updates to fix Windows platform builds
build: update configure.ac to allow builds on Mac M1 (arm64)
build: make openSUSE spec file builds work again
containers: remove /build directory
debian: use deb-systemd-helper if available
build: fix libpcp check-statics regexp error with objects in subdirs
build: podman PMDA no longer has deps, make it unconditional
build: don't package and install pmrep xtract-names helper
build: updates to hiredis code for pmseries and pmproxy
build: updates to hiredis-cluster code for pmseries and pmproxy
build: fix Makepkgs handling of argument parameters
build: use vendored github.com/libbpf/bpftool/libbpf and update
build: use vendored github.com/iovisor/bcc/libbpf-tools
build: use vendored git.code.sf.net/p/qwt and update
build: fix bpf PMDA inclusion check
build: fix windows default pmcd.conf entry, dup path component
build: rework Python3 and Python2 configure.ac logic
packaging: fix rpm systemd-sysusers on f37 and rawhide
- Documentation and QA infrastructure:
docs: small typo fixes relating to secure connections
docs: fix sheet2pcp(1) man page quoting in examples
pmdasample: additional metrics for testing cases
pcp-6.0.0 (31 August 2022)
- Major changes:
1. Add version 3 PCP archive support: instance domain change-deltas,
Y2038-safe timestamps, nanosecond-precision timestamps, arbitrary
timezones support, 64-bit file offsets used throughout for larger
(beyond 2GB) individual volumes.
** Opt-in using the /etc/pcp.conf PCP_ARCHIVE_VERSION setting. **
** Version 2 archives remain the default (for next few years). **
2. Switch to using OpenSSL only throughout PCP (dropped NSS/NSPR);
this impacts on libpcp, PMAPI clients and PMCD use of encryption;
these are now configured and used consistently with pmproxy HTTPS
support and redis-server, which were both already using OpenSSL.
3. New nanosecond precision timestamp PMAPI calls for PCP library
interfaces that make use of timestamps. These are all optional,
and full backward compatibility is preserved for existing tools.
- Client tools and utilities:
pcp2elasticsearch: implement authentication support
pcp-dstat: implement support for the top-alike plugins
pcp-dstat: add plugin configuration for ZFS metrics
pcp-dstat: battery charge remaining config using denki metrics
pcp-htop: update to latest stable upstream release
pcp-htop: initial support for screen tabs in the user interface
pcp-pidstat: correct operation of the -p ALL|SELF options
pmlogger: small changes for handling derived metrics better
pmlogger, import: support configurable default archive version
pcp2xxx: ignore pmrep-specific options
pmlogger: extra hardening, backtrace symbol improvements
pmlogger: add -V (output archive version) command line option
pmseries: add sum(), avg() and stdev() functions
pmseries: add nth_percentile() and topk() functions
pmseries: add max_inst() and max_sample() functions
pmseries: add min_inst() and min_sample() functions
pmseries: be more defensive during shutdown error paths
pmseries: fix assumption that any 40-character string is a SID
pmseries: allow reporting values from SIDs (not just queries)
sheet2pcp: add -V (output archive version) command line option
ganglia2pcp: add -V (output archive version) command line option
iostat2pcp: add -V (output archive version) command line option
- PMDA additions, enhancements and bug fixes:
pmdaapache: do time_t manipulation with sufficient space
pmdabcc: sync bcc PMDA modules with upstream bcc tools
pmdabpf: adds CO-RE (Compile Once - Run Everywhere) modules
(exitsnoop, oomkill, bashreadline, mountsnoop, vfsstat,
opensnoop, fsslower, statsnoop, tcpconnlat, tcpconnect)
pmdabpf: support x86, arm and powerpc
pmdabpf: fixed persistence of indom and cluster identifiers
pmdabpf: rework setrlimit() logic for some small memory hosts
pmdabpftrace: move example autostart scripts to /usr/share
pmdabpftrace: update biolatency example script for kernel 5.16+
pmdadenki: fix battery detection for non-intel systems
pmdadenki: add support for multiple active batteries
pmdadenki: support the -D option for debugging
pmdadenki: improve labels associated with metrics
pmdadenki: add battery capacity metric
pmdadenki: add separate indom help text
pmdalinux: add new MpTcpExt metrics from latest Linux 5.x kernels
pmdalinux: updates for latest /proc/net/netstat kernel changes
pmdalinux: improve network metrics help text
pmdalinux: fix of tty metrics on s390x platform
pmdamailq: update to ensure Y2038-safe time_t handling
pmdammv: use highest available timestamp resolution
pmdaopenvswitch: additional interface and coverage stats
pmdapostfix: harden against a not-yet-running postfix
pmdaproc: fix psargs string for processes with very large PIDs
pmdaproc: fix cgroup cpu metrics refresh structures
pmdasockets: prevent string overwrite of ss_stats_t fields
pmdasockets: add checking to the pmStore filter strings
pmdastatsd: fix detection of failure memory allocation
- Server-side utilities and log management scripts:
pmproxy: allow request parameters to be sent in the request body
pmproxy: fix race on teardown of pcp protocol proxy clients
pmproxy: improve error checking, check uv_pipe_bind result
pmproxy: harden logging interfaces, racing with startup
pmieconf: add several pmie rules for Open vSwitch metrics
pmlogrewrite: subtle change in semantics for error checking
pmlogreduce: allow sub-second values for -t option
pmlogreduce: temporal index, add entries after 100k of data volume
pmlogcheck: beef up pass 0 to check metadata record types
pmlogconf: fix reprobing with interactive changes
pmlogmv: fallback to copy for cross-mount case when link fails
pmlogmv: add -c (paranoid checksum) option
pmlogger_farm: add default configuration file for farm loggers
pmlogger_check: increase PMLOGGER_REQUEST_TIMEOUT from 2 to 10 secs
pmlogger_daily: callbacks for extra daily log processing tasks
pmlogger_daily, pmlogger_check: additional systemd-driven changes
pmlogger_daily: move redirection of stdout+stderr earlier in script
pmlogger_daily: abandom use of fmt(1) - not portable - uses awk now
pmlogger_daily_report.sh: some major efficiency improvements
pmlogger_daily_report: re-enabled for rpm and deb builds
pmie_check: avoid leaving lock file and temp dir behind
pm{log,ie}ctl: handle embedded shell syntax in control lines
pm{log,ie}ctl: add -C args option to pass "args" to pm{logger,ie}_check
systemd units: pmlogger and pmie farm conditional use of type=exec
rc-pmcd: reorder the systemd paths attempted in migrate_pid_cgroup
dbpmda: fix an overlapping copy and add error handling
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp_archive: new library for apps that write PCP archives
libpcp: optimize indom handling in fetchgroup code
libpcp: drop time_t abuse in getdate.y, use safe sizes
libpcp: add __pmDumpPDUTrace() and circular trace buffer
libpcp: add PM_ERR_FEATURE, PM_ERR_TLS error codes
libpcp: refactor __pmDumpStack(), improve direct calling tools
libpcp_qmc: require Qt5.6 as the minimum version for builds
libpcp_qmc: resolve the Qt::endl warning more cleanly
libpcp_web: stop Redis initialization if Redis version tool old
libpcp_web: honour config settings that disable redis completely
libpcp_web: fix memory leaks in discovery, query parsing and APIs
libpcp_web: honor exclude.metrics setting in pmseries --load
libpcp_web: run pmFetchArchive(3) in a worker thread
libpcp_web: fix race condition tearing down load baton
libpcp_pmda: ensure indom cache write handles time_t safely
libpcp_import: add interface for setting output log version
libpcp_import: interfaces for samples with high-resolution timestamps
python api: updates to allow building from outside git repo
python api: allow tools using pmconfig module to ignore options
python api: add python wrappers for highres PMAPI routines
python api: correct refcounting on pmParseMetricSpec source buffer
- Security Enhanced Linux:
selinux: additional policy rules, esp glusterd_log_t
selinux: bcc PMDA policy to exec private memfd ctypes/libffi objects
selinux: make use of syslogd_var_run_t map rule conditional
selinux: policy updates needed for the pmdasockets metrics
selinux: fine-tune netlink_tcpdiag_socket policy for all platforms
- Misc build, infrastructure and packaging updates:
build: latest distros supported (ubuntu 22.04, fedora 37, rhel9, etc)
build: reproducible debian build efforts
build: use standard dpkg buildflags variables.
build: add BuildRequires: python*-pymongo to mongodb PMDA
build: detect libbpf version for the BPF PMDA
build: do not transform symlink targets when generating the source tarball
build: update artifactory deploy script, add recalculate_metadata subtask
build: update configure script for python2 retirement in rhel9
build: convert libpcp check-statics to using readelf if available
build: updates to libpcp check-statics for OpenBSD
build: fix configure detection of backtrace() and associated hooks
build: fixed source dependencies within libpcp_web makefile
build: add rpm conflicts lines on postgresql-pgpool-II
build: remove pmclient reliance on libpcp.h for timed sleep
build: remove mmvdump reliance on libpcp.h for mmap wrapper
build: make perl truly conditional in the PCP build
build: drop no-longer-needed NSS/NSPR package deps
build: resolve ostree non-writable /var for pmieconf
packaging: update rpm specs to solve systemd warnings
container: bump base image version
Makepkgs: fix for Debian build (and Qt packaging failure in CI)
vendor: switch to git-subtree for iovisor/bcc libbpf-tools code
- Documentation and QA infrastructure:
docs: update notes about sar2pcp, iostat2pcp in pcpcompat(1)
docs: add section to pcpcompat(1) about python2
docs: add fix for readthedocs compilation error
docs: updates to the Quick Guide documents
docs: clatifications to pmrep et al: man pages
docs: improve pmproxy timeseries and pmseries load documentation
docs: further improvements and fixes to the INSTALL doc
docs: add pmlogger(1) -V, describe $PCP_ARCHIVE_VERSION in pcp.conf.
docs: small fixes to the pcp-pidstat man page
docs: fix webapi documentation typo around polltimeout
pylint: numerous issues resolved, tracking latest versions
qa: regression tests for bpftrace PMDA: check probes
qa: pmdabcc pylint fixups
qa: rework Redis PING-PONG checks
qa/check: run tests under timeout(1) control if possible
qa-summary: allow unified reporting from CI and QA Farm
qa/admin/show-me-all & qa/show-me: changes for CI integration
qa/check: add support for "triaged" tests
ci: send report to Slack when QA workflow is triggered manually
ci: add required packages to enable bpf PMDA on CentOS Stream 9
ci: run CodeQL daily and for each PR
ci: run full QA on pull requests, save history
ci: unset XDG_RUNTIME_DIR when invoking podman
pcp-5.3.7 (5 April 2022)
- Client tools and utilities:
pcp2elasticsearch: implement authentication support
pcp-ss: fixed incorrect client-side filtering
pcp-ss: fixed reporting of IPv6 sockets in LISTEN state
pmrep: 'iostat-multipath-wwid' for multipath disk monitoring
- PMDA additions, enhancements and bug fixes:
pmdalinux: add disk.wwid.* aggregated multipath metrics
pmdalinux: add new MPTCP metrics from latest Linux kernel versions
pmdalinux: fix up TTY metrics on s390x platform
pmdalinux: add network.tcp.tcploss metric
pmdamssql: fix config file logic, python string handling
pmdadenki: fix crash in labels callback with multiple instances
pmdasockets: changed default filter in sockets PMDA to "state all"
- Server-side utilities and log management scripts:
pmlogconf: correctly handle metric state transitions on (re-)probe
pmie systemd: add missing systemd configuration and shell code
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp_web: resolve a number of small memory leaks
- Security Enhanced Linux:
selinux: use interface calls instead of a simple rule
selinux: add several more obscure missing selinux rules
selinux: additional debugfs policy requirement for pmdakvm
selinux: resolve an AVC observed on el8 with pmdashping
- Misc build, infrastructure and packaging updates:
rpms: switch to conditional selinux dependency for containers
debs: reproducible build updates
- Documentation and QA infrastructure:
docs: add section to pcpcompat(1) about python2
docs: update notes about sar2pcp, iostat2pcp in pcpcompat(1)
docs: improve pmproxy --timeseries and pmseries --load documentation
CI: disable cppcheck for pcp-atop temporarily due to a cppcheck bug
pcp-5.3.6 (2 February 2022)
- Client tools and utilities:
pmlogconf: switch to the bulk pmLookupDescs(3) interface
pmlogconf: fix reprobing with interactive changes
- Server-side utilities and log management scripts:
pmlogger: prioritize user configuration over pcp-zeroconf
pmlogger, pmie farms: stabilization and back-compat fixups
pmproxy: fix race on teardown of pcp protocol proxy clients
pmproxy: when secure.enabled is false, do not attempt to init libssl
pmproxy: correctly fallback to [pmseries] redis settings
- PMDA additions, enhancements and bug fixes:
pmdabcc: sync bcc PMDA modules with upstream bcc tools
pmdaelasticsearch: add elasticsearch `indices` metrics
pmdaelasticsearch: add missing metrics for existing groups
pmdaelasticsearch: add updated nodes.jvm.* metrics
pmdaelasticsearch: use _nodes API to determine master node
pmdaelasticsearch: correct when _cluster/state API is invoked
pmdaelasticsearch: fix origins.unmatched and origins.unrecog metrics
pmdanvidia: fix mishandling of zero-byte size passed to realloc
pmdarsyslog: add a pmlogconf file for rsyslog metrics
pmdarsyslog: fix to work with more modern rsyslog versions
pmdarsyslog: add support for rsyslog resource statistic
pmdarsyslog: add support for rsyslog action metrics
pmdarsyslog: add omfw, imudp, and imptcp metrics
- libpcp, libpcp_pmda, libpcp_web and language bindings:
libpcp_pmda: add indom cache fast-paths for inst lookup
libpcp_web: stop Redis init tasks if Redis version is unsupported
libpcp_web: honour config settings that disable redis completely
pcp-5.3.5 (10 November 2021)
- Client tools and utilities:
pmlogger: massive startup latency improvements over slow links
pmlogger: reduce "error sending connection ACK to client" msgs
pmlogger: abort if we see PM_ERR_IPC during config file parsing
pmlogger: rework early control port servicing
pmlogger: source zeroconf variables from an additional env file
pmseries: fix --load option failure on 32-bit platforms only
pcp-dstat: add modern mongodb dstat plugin configuration
pcp-atop: add support for Nvidia GPUs using pmdanvidia metrics
- PMDA additions, enhancements and bug fixes:
pmdamongodb: new PMDA to export PCP metrics from MongoDB
pmdamssql: share username/password with the Assessments API
pmdalinux: additions and updates to mem.zoneinfo metrics
pmdalinux: cull empty NUMA zones from zoneinfo instance domain
pmdalinux: increase /proc/net/netstat metric coverage
pmdalinux: increase /proc/net/snmp6 metric coverage
pmdalinux: increase /proc/net/snmp metric coverage
pmdalinux: improved robustness of procfs parsers
pmdakvm: add several new KVM kernel metrics
pmdanvidia: updates to latest NVML, add a batch of new metrics
pmdaopenmetrics: add vmware URL for use with vmware_exporter
pmdabpf: use bpf skeletons
- Server-side utilities and log management scripts:
pmproxy: provide transparent Redis reconnect after connection drop
pmproxy: do not connect to Redis if it's not enabled in config file
services: disable service advertising by default in pmcd and pmproxy
services: remove run-level check in pmlogger systemd service config
pmieutil: add pmie_farm service for non-primary pmie instances
logutil: add pmlogger_farm service, update associated admin tools
logutil: add pmlogctl -m flag, to enable service migration
pm{log,pmie}ctl: increase max delay waiting for a process to stop
pmlogconf: resolve issues in persisting changes to pmlogger config
pmlogconf: log metrics required by MS SQL Server Grafana dashboard
pmcpp: add optional outfile on command line
pmdaproc.sh: tweak tests for ping version in _setup_localhost
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: allow pmNameLookup(3) to use multiple PDU round-trips
libpcp, pmcd: support a new bulk pmLookupDescs(3) PMAPI routine
libpcp: add __pmHashFree interface to explicitly release nodes
libpcp: fix SASL authentication where hostname differs to FQDN
libpcp_web: support Redis authentication with password and ACL
python api: make PY_SSIZE_T_CLEAN, stop using deprecated CB interfaces
- Misc build, infrastructure and packaging updates:
packaging: enable pmlogger_farm if pmlogger is enabled pre-el9
packaging: cull old debian conffiles
packaging: rework OpenMandriva controls
packaging: obsolete the pcp-pmda-vmware rpm
build: transition to using vendored jsonsl code
build: update vendored htop code to 3.1.1 release
build: update vendored hiredis code to 1.0.2 release
build: convert ini header and source to vendored code
build: allow custom bpftool with --with-pmdabpf-bpftool
build: consolidate the multiple copies of sds strings code
- Documentation and QA infrastructure:
qa: resolve new pylint warnings in Fedora 35 python
ci: add Fedora 35 to CI and release workflow
ci: move daily QA 2h earlier, so it always finishes on the same day
man: add PMLOGGER_INTERVAL note in pmlogger -t option description
pcp-5.3.4 (8 October 2021)
- Client tools and utilities:
pcp-atop: enable detailed processor frequency scaling reporting
pcp-atop: handle different event naming of ix86arch PMUs
pcp-atop: report user and group names using PMAPI calls
pcp-htop: fix crash on terminal resize during sampling
pcp-htop: fix mouse wheel collision with autogroups nice adjustment
pcp-htop: do not reset MainPanel on disabled mouse events
pmlogger: fix small error in EOF logic on pmcd channel
pmlogger: install a zeroconf file for setting interval
- PMDA additions, enhancements and bug fixes:
pmdalinux: add detailed processor frequency scaling metrics
pmdapmproxy: add logrewrite rules to transition metrics
pmdasockets: fix the parsing of reord_seen values
pmdabpf: resolve help text warning from pmdaInit
pmdads389: fix syntax error in alternate branches
pmdads389: allow installation when ds389 server is down
pmdahacluster: fix types for some corosync and drbd metrics
- Server-side utilities and log management scripts:
logutil: cleanly separate primary and farm logger services
logutil: tweak timeouts in pmlogger.service
logutil: add -P / --only-primary option to pmlogger_check
pmproxy, libpcp_web: timer cleanups, updates to metrics
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: use urlencoding for hostspec parameter values
libpcp: improve memory footprint of pmSetProcessIdentity
libpcp: __pmResult restructuring for highres timestamps
libpcp: rework fetchgroup max 64-bit value comparisons
libpcp: add new PM_ERR_BOTCH error macro
libpcp: large-PDU-related improvements and fixes
libpcp_web: smaller memory footprint in Redis cluster code
libpcp_web: optimize webgroup metric updating with mmv_set
libpcp_mmv: add new convenience interfaces for inc/add/set
libpcp_fault: fault injection 50,000km service
- Misc build, infrastructure and packaging updates:
misc: numerous minor changes to resolve LGTM.com issues
configure.ac: fix $PCP_PS_ALL_FLAGS for OpenBSD
build: require libbpf >= 0.4.0
build: fix tempfile handling in Makepkgs script
build: add OpenBSD "init" integration for postinstall and remove
packaging: additional RPM changes for pcp-zeroconf conf file overrides
packaging: fix ownership of /usr/lib/systemd/system/pmlogger.service.d
- Documentation and QA infrastructure:
docs: add a new pmdabpf(1) man page
qa: tweak valgrind options for speed
qa: admin/list-packages new `cmd` feature
ci: bump limit to retain 15 QA reports
ci: add libcmocka-devel to QA package lists
pcp-5.3.3 (15 September 2021)
- Client tools and utilities:
pcp-htop: add new "dynamic columns" feature
pcp-htop: enable all mouse-driven functionality
pcp-htop: support offline and hotplug CPUs
pcp-htop: columns for process autogroup identifier and nice value
pcp-htop: add combined memory and swap meter
pcp-htop: limit meter LED mode by width
pcp-htop: versioned config files and config_reader_min_version
pcp-htop: add a new option to change the header layout
pcp-htop: move shipped column/meter configs below /usr/share
pmieconf: improve the CPU saturation rules
pmieconf: add several per-disk pmie rule templates
pmie: fix sigsegv when used with archives lacking needed metrics
- PMDA additions, enhancements and bug fixes:
pmdabpf: introduce the new BPF PMDA based on libbpf
pmdabcc: free BPF memory after module setup completes
pmdalinux: add -A option for overriding permissions checks
pmdaproc: add proc.autogroup scheduling metrics
pmdaproc: ensure ENODATA error code not exposed on fetch callbacks
pmdapodman: correct the metric count calculation for pmdaInit
- Server-side utilities and log management scripts:
pmproxy: avoid duplicate instname labels in /metrics response
pmlogger: add -I/--pmlc-ipc-version command line option
pmlc-pmlogger: rework PDU_LOG_STATUS
Fix PMDA upgrade issue relating to python vs python3 switch
services: switch logutil and pmieutil scripts from type oneshot to exec
services: replace daily poll services with persistent timer setting
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
python api: additional converter functions for struct timeval
python api: refer to ctypes consistently
python api: fix pmiAddMetric parameter type
libpcp: __pmZoneinfo implementation suitable for library use
libpcp: internal restructuring and initial v3 PCP archive code
libpcp: explicit readdir64 use is removed, via compile options only
libpcp: add -Dpmlc diags for the pmlc and pmlogger IPC protocol
libpcp_mmv: add new convenience routines for value set/inc
- Misc build, infrastructure and packaging updates:
build: fixed errors and warnings reported by LGTM.com
build: fixed warnings reported by Coverity
build: initial fixes of gcc warnings from -Wshadow
build: updates to resolve warnings from latest version of pylint
build: fix pmdasockets compiler warning on 32bit platforms
packaging: remove any stale *-poll systemd service symlinks
- Security Enhanced Linux:
selinux: additional policy for podman socket access
selinux: make use of container_var_run policy conditional
selinux: make use of glusterd_log policy conditional
- Documentation and QA infrastructure:
pmdasample: add sample.proc.* metrics for dynamic indom testing
docs: new pcp-htop(1) manual page for dynamic columns and meters
qa: use containers for all PCP CI and release builds
qa: add common.redis routine _wait_for_redis() for tests to share
ci: add Fedora 35 and disable Python 2 there (missing packages)
ci: refactorings and misc improvements across the board
ci: disable debuginfod due to massive valgrind slowdown
ci: retain the 10 most recent QA reports for comparison -
https://performancecopilot.github.io/qa-reports/reports/
pcp-5.3.2 (30 July 2021)
- Client tools and utilities:
python: minimum supported python2 version is now 2.7
pcp-ss: new socket statistics client tool
pcp-htop: add new "dynamic meters" feature
pcp-htop: use code vendoring and git subtree of htop.dev
pcp-htop: fix per-process user and system time conversions
pcp-htop: use the correct metric for shared memory calculations
pcp-htop: fix the color of PROC_COMM for PCP
pminfo: plug small memory leak on error paths for Coverity scan
pmdumplog: add -I option to report on-disk instance domains
pcp-{iostat,tapestat}.1: add --version description
pmrep/pmconfig.py: fix archive writing with scaled metrics
newhelp: reporting for empty or missing help text
pmlogger: add empty string help text
zsh completion: pmevent is an alias for pmval, fix command sorting
bash,zshc completions: update for pmdumplog -I
bash completions: add -P option for pmclient
- PMDA additions, enhancements and bug fixes:
pmdadenki: add new PMDA 'denki' for power metrics
pmdalinux: fix sign extension in buddyinfo total calculation
pmdalinux: use buddyinfo's order in calculating total size
pmdaproc: add proc.psinfo.cwd and proc.psinfo.exe metrics
pmdasockets: default to daemon and migrate from DSO to daemon
pmdasockets: add persistent filter, new metrics, parser fixes
pmdasockets: add missing help text for reord_seen and delivered
pmdasockets: fix #! for Install and Remove
pmdasockets: fix resource leak coverity CID371684
pmdasockets: fix regex in Upgrade script
pmdahacluster: Remove un-needed pmdaCacheLookupName() calls
pmdahacluster: add support for labels on key metrics
pmdammv: add check for item uniqueness
pmdapmcd: add pmcd.zoneinfo metric
pmdabcc: drop defunct usdt_jvm_alloc module
pmdads389: add two additional cn attributes
pmdads389: automated discovery of replication agreements
- Server-side utilities and log management scripts:
dbpmda: add -flag to debug command
pmproxy: honour the secure.enabled config option
pmlogger: block SIGALRM before re-exec
pmlogger: tighten up "lost pmcd connection" logic
pmlogger: don't try to catch SIGSTOP
pmlogger_daily.sh: extra -VV diagnostics
pmcd: avoid mem leak on error path, Coverity issues
pmcd: small tweak to getzoneinfo_plan_b()
pmproxy: add mutex for client req lists, fix https/tls support
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
python api: guard against fetchgroup destructor race condition
libpcp_web: add generic timer API
libpcp_web: add generic server metrics
libpcp_web: improve discovery lock handling and scalability
libpcp_web: add mutex to struct webgroup protecting the context dict
libpcp_web: add new metric for metadata discovery partial reads
libpcp_web: fix many resource leaks, null checks from Coverity scan
libpcp_web: plug mem leak in redisMapInsert during daily log-rolling
libpcp_web: disable Redis connection if version check fails
libpcp_import: fix per-instance error handling in pmiWrite
libpcp: don't clobber help text buffer, fix "fallback" logic
libpcp: complete remaining libpcp.h internal struct renaming
libpcp: replace sighold() and sigrelse() with sigprocmask()
- Misc build, infrastructure and packaging updates:
build: optionally enable sanitizers in configure
build: conditionally enable gperftools (default is no)
build: mark python3-bpfcc dependency as architecture specific
build: bump Fedora version of the PCP container
build: do not install /var/tmp as part of PCP itself
build: add configure and makefile macros for libbpf, libelf
libpcp/pmapi.h/pmdbg: add -Ddev0,dev1,dev2
- Security Enhanced Linux:
selinux QA: rework QA for other SELinux implementations
selinux QA: fix semodule -l output format, has changed in Fedora 34
selinux QA: small fixup for semodule -l filter
selinux: small changes for CentOS Linux7.9.2009
- Documentation and QA infrastructure:
docs: add "SELinux Considerations" section to pmdaopenmetrics(1)
docs: add man page for pmWebTimerRegister(3) and related functions
docs: document pmdasockets(1) filter config file
docs: add missing long-options in many man(1) pages
docs: move Grafana troubleshooting out of scaling doc
docs: document hostspec parameter for openmetrics endpoint
docs: update scaling doc with federated setup and troubleshooting
docs: pmdastatsd, update man page and Install instructions
docs: pmseries(1) man page fix ":" operator description
docs: drop the unused --profile output from pcp-dstat(1)
qa/common.avahi: be more careful with stderr from avahi-browse
qa/common.check: revise _service "stop" logic for pmlogger
qa/common.check: improve recovery of failed systemctl services
pcp-5.3.1 (4 June 2021)
- Client tools and utilities:
pcp-atop: fix threading options process-sort-order bug
pmieconf: add SQL Server stolen node memory rule
pmieconf: detect sustained CPU thermal throttling
pmrep: add support for config directory
pmrep: split default configuration into separate files
pmrep: sort collectl(1) metricsets
pmrep: tweak proc metricsets
pmrep: improve instance matching
pmrep: add option to omit instance info
pmrep: implement sar-v metricset in pmrep.conf
pmrep: implement sar-r-ALL metricset in default pmrep.conf
pmrep: add sar-R metricset in pmrep.conf
pmrep: add support for repeating header based on terminal height
pmrep: set repeat_header = auto for sar-like metricsets
pmrep: tweak :sar-h metricset output
pmrep: more pmrep.conf kb vs kB vs KB tweaking
pmrep: add more pidstat-like (-drsuvw) metricsets to pmrep.conf
pmrep: add vmstat -d like metricset to pmrep.conf
pmrep: update pmrep.conf sar disk metricsets to include discards
pmrep: add iostat-12.3 like iostat -dktx metricset to pmrep.conf
pmrep: add new proc-activity metricset
pmrep: improve proc metricsets in pmrep.conf
pmrep: remove unneeded sar-old-kernel.conf file
pmrep: harden config file parsing
pmrep: update pmproxy metricset
pmrep: add RHEL8 sar metricsets to default pmrep conf directory
pmrep et al: better process name matching for instance filtering
pmrep et al: better name matching for live filtering also
pmchart: save changes to users prefered archive location
pmchart: use libpcp_qmc diagnostic for archives from same host
pmstat: correctly handle the -V/--verbose option
pmval: add -X flag to report higher precision timestamps from archives
pmlogger: fix file descriptor leak on daily re-exec
pmdumplog: make -x control ALL timestamps
- PMDA additions, enhancements and bug fixes:
pmdalinux: fix persistence of the slabinfo metrics indom
pmdaproc: performance improvements for the Linux per-process PMDA
pmdaproc: provide a proc.psinfo.policy_s metric
pmdaproc: ensure log-finished message not logged prematurely
pmdapodman: switch from libvarlink to the podman REST API
pmdaperfevent: fix help text, allow DSO installation
- Server-side utilities and log management scripts:
pmlogger_daily_report: always disable pmrep header repeating
rc_pmcd: change .Need* protocols (slightly)
rc_pmcd: block concurrency for automated PMDA updates
rc_pmie: do not discard pmie stderr when starting pmie service
pmproxy: move metrics from pmproxy.redis.discover to pmproxy.discover
pmproxy: add long help texts for new pmproxy metrics
pmproxy: add pmproxy.discover.changed_callbacks metric
pmproxy: do not init default uv_loop twice
pmproxy: start pmproxy after Redis (if available)
pmcd: support for high resolution timestamp sampling
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: support for HIGHRES fetch and result PDUs, pmHighResFetch(3)
libpcp: fix fetchgroup instance profile mangling
libpcp: fix off-by-one error in pmfstring(3)
libpcp: simplify exec.c thread-safe locking
libpcp_web: integrate hiredis and hiredis-cluster
libpcp_web: throttle discovery callbacks to improve scalability
libpcp_web: add new metrics for Redis operations
libpcp_web: free dictEntry struct of dropped contexts
libpcp_web: ignore duplicate or early stream messages
libpcp_web: expose number of inflight redis requests to discovery
libpcp_web: register discovery callback once for initial directories
libpcp_web: add a limit on storable instances to cap mem alloc
derived metrics: add additional iostat metrics
pmconfig.py: more consistent error handling
- Misc build, infrastructure and packaging updates:
build: fix debian builds with missing openpyxl packages
build: fix rpm file permissions for the pcp-testsuite package
build: ensure zabbix.agent.d and sasl2 configs marked as such
build: retire the RPM PMDA, unused and not performance related
- Security Enhanced Linux:
selinux: fix detection of lockdown policy class
selinux: add capability2 { bpf } when needed
selinux: add rules for type kmod_exec_t
selinux: use logging_watch_all_log_dirs_path macro when needed
selinux: add policy changes for pmdaproc dma_device_t stat check
- Documentation and QA infrastructure:
docs: update donations link to https://opencollective.com/pcp
docs: add sizing recommendations table to the Scaling doc
docs: update Fedora/RHEL/CentOS installation instructions
docs: transition from bintray (retired) to artifactory
docs: pmrep man page improvements around instance selection
docs: fix a typo in pmregisterderived(3)
docs: pmrep and pcp2xxx utilities man page tweaks
docs: simplify systemctl commands in the quickstart guide
docs: pcp-dstat(1) man page path tweaks
docs: add missing long options to various man pages
docs: escape pmdiff(1) dashes in options properly
docs: update pmie_check(1) and pmie_daily(1) man page
docs: drop commented env vars from command line option configs
qa: valgrind and helgrind variants for multithread14
qa: add helgrind to group and associated tests
qa: specify PCP libraries only on libpcp_web link lines
ci: add script to open local Allure report
ci: add Fedora 34
ci: csv export
pcp-5.3.0 (16 April 2021)
- Client tools and utilities:
pmie: fix nasty scheduler issue around pmcd reconnect
pcp-atop: allow process filtering based on state
pcp-atop: report kernel wait channel symbol for blocked processes
pcp-atop: report virtual memory out-of-memory process killing
pcp-atop: report swap-cached, KSM, ZFS and zswap memory metrics
pcp-atop: report per-process locked memory metric
pcp-atop: report per-process run_delay scheduler metric
pcp-atop: extended reporting of pressure stall information
pcp-atop: document date/time syntax for start/end time (-b/-e)
pcp-atop: option to sort threads per process
pcp-atop: resolve some inconsistencies with atop and atopsar
pcp-atop: prevent automatic stepping in archive replay mode
pcp-atop: correct 'elapsed' reporting and improve boottime setup
pcp-atop: fix displaying processes (instances) with no values
pcp-atop: improve behaviour without kernel.all.pid_max value
pcp-atopsar: ensure --begin semantics have matching origin/start
pcp-atopsar: default reporting start time is today
pcp-htop: added the SysArch Meter
pcp-htop: added ZFS ARC statistics
pcp-htop: ensure Zram Meter always uses initialized data
pmquery: use default line wrapping to not chop off text
pmrep: fix error message with undefined metricset
pmrep.conf: fix metric names in proc-essential
pmrep.conf: switch using BCC PMDA netproc module for proc-net metricset
pmrep.conf: tweak proc-io-ext unit
pmrep.conf: more complete proc-os-stats counts
pmrep et al: allow specifying instances with PID
- PMDA additions, enhancements and bug fixes:
pmdabcc: rename bcc.proc.io.net.perpid.* to bcc.proc.net.*
pmdabcc: fix runqlat for newer compilers
pmdabcc: fix bioperpid and biotop on recent kernels, upstream sync
pmdabcc: handle gaps in syscall number list in syscount module
pmdabcc: biotop - rename bpf function for consistency
pmdabcc: make netproc the only default module
pmdabcc: netproc - add command name to instance names
pmdahacluster: reduce log messages from popen() calls
pmdahacluster: fix logic for ha_cluster.pacemaker.resources.*
pmdaperfevent: automatically increase the allowed open files
pmdaproc: cleanup up debug flag use
pmdaproc: update acct.* metrics pacct file location
pmdalinux: add a new kernel.all.nptys metric
pmdalinux: add memory metrics to collate vmstat numbers
pmdalinux: add support for fibre channel host metrics
pmdalinux: switch interrupts metrics to using compound indoms
pmdaweblog: 10,000km service
pmdaxfs: fix PMID numbering botch below xfs.perdev.buffer
- Server-side utilities and log management scripts:
pmcd: slight change to an internal AF_UNIX socket path
pmproxy: correctly handle metrics with multiple names
pmproxy: increase open files soft limit to maxfiles
pmlc: fix botched error checking logic in addinst
pmlogconf: fix the interactive pattern search
pmlogconf: tools/sar add missing cpu metrics
pmlogconf: add configs for services/pmproxy and services/redis
pmlogconf: add config for per-process network stats
rc_pmie: remove pmcd_wait check for pmcd, not needed
zeroconf: remove duplicate metrics from 30-second sampling setting
zeroconf: increase logging delta for proc metrics from 30s to 60s
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: changes for metrics with semantics of dimension "none"
libpcp: add pmfstring(3), a safe replacement for %s in fscanf
libpcp: derived metrics semantics for delta(x) when x is unsigned
libpcp: add pmstrncpy(3) and pmstrncat(3) for safe string handling
libpcp_pmda: don't cripple hash tables, fixes very large indoms
libpcp_web: add instrumentation and various mmv metrics
libpcp_web: plug a potential memory leak in archive discovery
libpcp_web: plug leak in discovery values callback writing to Redis
libpcp_web: plug leaks in callers of series_stream_append
libpcp_web: plug leaks in callers of pmwebapi_new_metric
libpcp_web: fix heap corruption in Redis maps on pmproxy shutdown
- Misc build, infrastructure and packaging updates:
Coverity scan and clang fixes throughout the code base
build: update the redhat.spec to use %files, adding tmpfiles.d
build: avoid packaging rundir on [open]SUSE distros
build: drop historical recursive chown from pcp rpm specs
build: rename master to main (or similar)
build: build pmdabind2 only if dependencies are installed
build: add Dockerfile for latest development PCP build
build: include systemd-devel for more rpm build cases
build: fix deb path permissions for pmfind log directory
build: install the directory that houses DM pmieconf content
build: fix some mispackaged (deb) pcp2xxx tools
build: add a pcp-zeroconf package for deb builds also
- Security Enhanced Linux:
selinux: add conditional lockdown policy access by pmdakvm
selinux: add build infrastructure for netlink_tcpdiag_socket class
- Documentation and QA infrastructure:
docs: first version of the PCP Scaling Guide
docs: updates to pmdaopenmetrics(1)
docs: explain pmproxy stream options in terms of metric retention
docs: add note about deprecation of sar2pcp