-
-
Notifications
You must be signed in to change notification settings - Fork 237
/
CHANGELOG
6378 lines (6177 loc) · 341 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-7.0.0 (1 July 2025)
- Work-in-progress.
pcp-6.3.2 (6 November 2024)
- PMDA additions, enhancements and bug fixes:
pmdabpf: avoid a too-low rlimit setting within pmdabpf
pmdaproc: add an access control mechanism for remote sampling
pmdalinux: ensure divide-by-zero cannot happen with tmpfs.full
pmdalinux: additional MPTcpExt netstat metrics
pmdastatsd: keep correct track of pmns mapped metric count
pmdaopenmetrics: run as pcp user rather than root by default
pmdaopenmetrics: ensure correct cache file permissions used
- Server-side utilities and log management scripts:
libpcp, pmlogger: add support for zstd(1) compression of archives
pmlogbasename: new, maps filename to PCP archive basename
pmlogcompress: new, archive compression/decompression utility
pmlogcheck: performance improvements
pmlogcheck: allow multiple archive options on command line
pmlogextract: extend -v option with the full pmlogger syntax
pmlogextract: fix for reporting file size on 32-bit platforms
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: fix 64-bit big endian v3 archive timestamp decoding
libpcp: change in archive value interpolation for non-counter metrics
python api: allow timeval and timespec init with float/datetime
- Client tools and utilities:
pminfo: minor error path reworking
pcp-buddyinfo: addition of a --no-interpol option
pcp-ps: added option to view full task name with its argument
- Build, infrastructure and packaging updates:
build: deal with botched deb package names from Debian
build: ensure pmie config.default created with correct ownership
systemd: move pcp-reboot-init rpm spec logic from zeroconf to pcp
selinux: ensure farm pmlogger/pmie processes labelled correctly
- Documentation:
docs: refine pmdaproc -A description details
docs: make pmstat(1) match the code for -t defaults
pcp-6.3.1 (17 September 2024)
- Client tools and utilities:
pcp2arrow: fix extraction of values for metrics with indoms
pcp-htop: fix platform setting enabling screen tabs
pcp-htop: update to latest upstream bug fixes
pcp-meminfo: added timestamp string for consistency
- PMDA additions, enhancements and bug fixes:
pmdaopenmetrics: add vLLM metrics support by default
pmdahacluster: handle pacemaker 2.1.6 crm_mon output changes
pmdahacluster: handle new style Pacemaker role descriptions
pmdalinux: MPJoinSynBackupRx, MPJoinSynAckBackupRx netstat metrics
pmdalinux: sysfs fallback from hinv.cpu.clock metric
pmdaproc: lazy initialisation for accounting metrics
pmdapmcd: expose pmcd limits as new metrics
pmdammv: use isnan instead of open-coding NaN checks
- Server-side utilities and log management scripts:
pmcd: put an explicit cap on max number of fetched PMIDs
pmcd: put an explicit cap on max number of contexts per client
pmcd: cleanup caching of local hostname string
pmpost: guard against possible symlink attack
pmproxy: transition to dual Redis/Valkey support
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp_web: fix a race in webgroup context teardown on timeout
libpcp_web: transition to dual Redis/Valkey support
libpcp: auto-load the proc PMDA in local context mode
libpcp: fix buffer overflow in __pmServerAddInterface
libpcp: refactor the attr PDU content checking
libpcp: desc PDU consistency check and error message rework
libpcp: text PDU consistency check and error message rework
libpcp: creds PDU consistency check and error message rework
libpcp: label PDU consistency check and error message rework
libpcp: instance PDU consistency check and error message rework
libpcp: rework some fetch PDU integrity checks and error messages
libpcp: reworked __pmDecodeIDList integrity checks and warnings
libpcp: ensure no fd leakage to child from __pmProcessPipe
libpcp: ensure container names contain limited characters
libpcp: fix buffer overrun test in __pmDecodeValueSet
libpcp: hardening of the results PDU handling
libpcp: hardening of the creds PDU handling
libpcp: add new __pmCtlDebug() function
python API: fix MMV metric text, indom and semantics handling
python API: add log import timestamp convenience mechanisms
- Build, infrastructure and packaging updates:
build: tweak Makepkgs as dpkg-parsechangelog(1) is a bit picky
build: drop gfs2 PMDA from build if distro vendor opts-out
build: update denki.conf packaging location for consistency
- Documentation:
man pages: tidy up references to $PCP_DEBUG
man pages: __pmHash* added to man3i
man pages: pmnewcontext(3) unix: and local: option details
docs: man page updates transitioning away from Redis
docs: correct pmlogger(1) man page reference to section 5 page
docs: update the books to refer to key servers more generically
pmrep et al man pages: describe derived metric troubleshooting
pcp-6.3.0 (30 July 2024)
- Client tools and utilities:
pcp-htop: add AMD GPU metrics support
pcp-htop: fix Available Meter column list in Setup/F2
pcp-htop: fix nested derived metric definitions for devices
pcp-htop: fix label/color botch in the MySQL keys Meter config
pcp-xsos: fast system overview for Red Hat customer support
pcp-atop: fix units conversion for ipc.shm metric values
pcp2openmetrics: stricter adherence to the specification
pmview: developer preview only, incl. mpvis, dkvis, osvis
pmstat: include guest time in extra CPU stats
pmrep conf: add support for pmstat -x alike metricset
pmrep conf: fix collectl cpu metrics to match current versions
pmrep conf: add guest cpu time to vmstat output where missing
pmrep conf: add metricset to mimic pmstat(1)
pmrep conf: fix cpu metrics in sar/vmstat metricset formulas
pmconfig: add -L y2038_safe to know if 8-byte time_t used
- PMDA additions, enhancements and bug fixes:
pmdaamdgpu: metrics from libdrm and libdrm-amdgpu libraries
pmdabpftrace: use notready startup protocol with pmcd
pmdaproc: add AMD GPU support through fdinfo interface
pmdalinux: add support for Hyper-V balloon metrics
pmdalinux: add hinv.disk metrics for controller and disk model
pmdasockets: fix and defend against ss buffer overruns
- Server-side utilities and log management scripts:
pmcd scripts: ensure pmcd.conf not rewritten on every restart
pmcd scripts: tweak cross-platform ping(1) version sniffing
pmlogger_check: tighten ps|grep process search logic
pmlogconf: add configuration file for vmmemctl metrics
pmlogconf: add configuration file for hugepage metrics
pmlogconf: add configuration file for hyper-v metrics
pmlogctl, pmiectl: send -V output to stderr
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
python api: harden pmconfig parsing of bad config settings
python api: _TIME_BITS=64 changes for 32-bit platforms
libpcp: additional PMNS locking
libpcp: fixup for child hang in __pmProcessPipe function
libpcp: _TIME_BITS=64 changes for 32-bit platforms
libpcp: rework for some AF routines and signal handling
libpcp: extend derived metrics unary functions
libpcp: fix PDU error handling botch with EINTR
libpcp_gui, libpcp_qed: changes to help pmview
- Build, infrastructure and packaging updates:
build: configure.ac rework for 32-bit time_t Y2038 changes
build: skip broken Perl modules for some 32-bit platforms
build: add deb Replaces for Ubuntu 24.04 package renaming
build: add rpm dependency on /bin/ps from procps[-ng] packages
qa: update java classes for more modern Java bytecode version
qa: rework sample pmda sample.updown.* metrics
- Documentation:
docs: rename pmcheck.1 to pcp-check.1 for perl pmcheck
docs: fix pmdahacluster long metric help text formatting
pcp-6.2.2 (15 May 2024)
- pmdalibvirt: add support for metric labels
- pmdalibvirt: new balloon, vCPU and domain info metrics
- pmdalibvirt: remove support for the ancient RHEL 5 era "oldapi"
- pmdalinux: implement mem.vmmemctl VM balloon metrics
- pmdauwsgi: improve handling of transient uWSGI servers
- pmdauwsgi: short-circuit handling of pmcheck failure
- pmdauwsgi: fix semantics of several metrics
- pmcd: rate-limit connection failure logging in case of bursts
- pmcheck: rework checkproc.sh when used in non-systemd environment
- pmrep conf: minor tweaks to sync with sysstat 12.7.5
- pmrep conf: fix few pidstat metric formulas
- pmlogdump: fix -V/--version option handling
- pmlogger_daily_report.sh: fix pmrep error filtering
- pcp2openmetrics: minor bug fixes, added archive timestamps
- indomcachectl: new tool to initialize/dump indom cache files
- libpcp_pmda: add PMDA_CACHE_WRITE indom cache operation
- libpcp_web: ensure openmetrics scrape sees all labels
- libpcp: derived metrics: add novalue() and defined(x) rework
- libpcp: derived metrics lazy binding for defined(x) ternary
- libpcp: add __pmNotifyThrottle and __pmResetNotifyThrottle
- python API: pass help text result as string not bytes
- python API: fix return value from pmLoadDerivedConfig
- tmpfiles.d: extend the tmpfiles.d directory set to logdirs
- bash,zsh: ensure completion for both pmlogdump and pmdumplog
- build: add missing python rpms to pcp-testsuite deps
- build: use Y2038-safe time_t interfaces on 32-bit platforms
- selinux: allow pmie/pmlogger services to use systemd status
- selinux: ignore pmie/pmlogger getattr on nsfs files
- docs: add pmrep(1) hint about CSV delimiter with metricsets
- man pages: pmnewcontext.3: reword PM_CONTEXT_LOCAL description
- man pages: man-spell updates
pcp-6.2.1 (10 April 2024)
- PMDA additions, enhancements and bug fixes:
pmdauwsgi: (new) instrumentation from uWSGI servers
pmdalinux: new hugepage metrics from sysfs (fixed size hugepages)
pmdalinux: new filesys.uuid and filesys.type metrics
pmdalinux: new TcpExt metrics from /proc/net/netstat
pmdalinux: new softnet metrics from newer kernel versions
pmdalinux: new /proc/vmstat khugepaged metrics
pmdabpf: updates to add eBPF networking metrics for pcp-atop
pmdaopenmetrics: fix script error diagnostic cascading exception
- Client tools and utilities:
pcp2openmetrics: (new) push PCP metrics in OpenMetrics format
pmcheck: (new) interrogate and control PCP components
pmcheck: Redis server detection and agent recommendation
pmcheck: PostgreSQL server detection and agent recommendation
pmcheck: uwSGI server detection and agent recommendation
pcp-atopsar: fix TZ mishandling relating to day-crossover
pcp-dstat: fix an I/O config typo, sum reads and writes
pcp-htop: sync latest htop-3.3.0 fixes
pmrep.conf: use bpf instead of bcc pmda for proc net metrics
pmrep.conf: proc-essential cosmetic improvements
pmrep.conf: remove vmeff field from sar -B config
pmrepconf: use pmrep-internal representations for each metric
- Server-side utilities and log management scripts:
pmlogger: bizarre timezone fix (github #1936)
pmlogger: improve handling of a change in metadata semantics
pmlogdump: add support for multi-archive contexts
pmproxy: disable Redis protocol proxying by default
runaspcp: remove hard-coded "pcp" for user and group
init scripts: drop conditonal use of setpriv(1) or runuser(1)
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: fix logmeta.c SEGV with V3 archives
libpcp: fix memleak on repeated __pmFixPMNSHashTab calls
libpcp: add pmgetopt pmflush() call for warnings
libpcp: fixes for V3 archives and multi-archive contexts
libpcp: export __pmLogChangeArchive() interface to tools
libpcp: fix for PMNS with multi-archive contexts
libpcp: small derived metrics bug fix (github #1921)
- Build, infrastructure and packaging updates:
Linux MX distro support (Debian without systemd)
riscv: configure pmdabpf_arch value correctly
tar packages: fix perl modules install in postinstall script
eBPF updates: add submodule for blazesym, sync to latest
debian build: add postrm for pcp-zeroconf
build: removed cppcheck from 'make check', too flakey
container: Fedora 40 container testing added
container: fixed Fedora base image location (quay.io)
build: add support for riscv64 to pcp rpm spec files
- Security Enhanced Linux:
selinux policy: small tweak for pmie signal handling
- Documentation:
man pages: document pmlogger_check and pmlogger_daily SaveLogs
man pages: man-spell and corrections
docs: updated donations page with new fiscal sponsor details
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