forked from performancecopilot/pcp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
5834 lines (5646 loc) · 312 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.0.1 (31 October 2022)
- https://github.com/performancecopilot/pcp/projects/1
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
qa: add _check_redis_server to common.check, update tests
pcp-5.2.5 (8 February 2021)
- Client tools and utilities:
pcp-dstat: correct the sample count logic, was off-by-one
pcp-dstat: fix csv output with timestamps (no special chars)
- PMDA additions, enhancements and bug fixes:
pmdazfs: new Linux ZFS metrics
pmdasockets: new Linux ss(1) metrics
pmdahacluster: new HA metrics (Pacemaker, Corosync, DRBD and SBD)
pmdabcc: netproc module: count kernel calls, not packets
pmdalinux: add hinv.cpu.thermal_throttle metrics
pmdalinux: add missing help text for new metrics, drop dups
- Server-side utilities and log management scripts:
pmproxy: fix quoting of /series/metrics matched names
pmlogger: fix permissions mismatch for pmlogger tmp dir
pmlogger: fix incorrect reporting of pmcd state changes
pmie_check: explicity set a umask appropriate for pmieconf
pmlogger_check: explicity set a umask appropriate for pmlogconf
pmlogger_check: skip .NeedRewrite processing with -K
pmpost: increase timestamp resolution
pmpost: fix NOTICES file ownership changes
rc scripts: add optional logging
systemd: remove Wants=pmcd from pmlogger and pmie
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: redo the interp.c time_caliper changes
libpcp_web: add timer driven webgroup garbage collector
libpcp_pmda: add new function pmdaCachePurgeCallback
- Misc build, infrastructure and packaging updates:
libpcp_web: fix minor memory leak on an error path (covscan)
build: fixed version dependencies between .deb sub-packages
build: extend configure.ac for more ncurses cases (pcp-htop)
build: explicit rpm dependency on make package for f34+
build: consistent naming for icmp/rawip sockets
build: fix hostname(1) dependency (again)
build: create per-rpm-subpackage systemd tmpfiles entries
build: add systemd build dependency for deb builds
build: do not install bash completions for non-existent commands
build: do not install pcp-gui pmafm file for non-existent commands
build: ensure bash completions end up in correct deb sub-packages
build: fixes to ensure PCP_TMPFILE_DIR not used during the build
build: package pmrepconf in the same rpm package as pmlogconf
build: add versioned rpm spec dependencies for pcp-zeroconf
ci: upgrade to Ubuntu 20.04 base VM for containers
- Security Enhanced Linux:
selinux: enable netcheck rawip_socket if icmp_socket unavailable
selinux: additional rules needed for pmie/pmlogger in fedora
- Documentation and QA infrastructure:
docs: add pointers to readthedocs.io now that books live there
pcp-dstat: optionally install a man page symlink for dstat
docs: pmproxy(1) man page corrections and additions
qa: improve sortinst reporting when line buffer overflow occurs
pcp-5.2.3 (18 December 2020)
- Client tools and utilities:
pcp-htop: minimal version of htop with PCP backend platform
pcp-atop: add per-process network statistics
pcp-atop: result instance indexing performance optimization
pcp-atop: always restore original state of process accounting
pcp2elasticsearch: add guard around maximum long integer size
pmlogsummary: fix indom lookup for dynamic instance domains
pmseries: provide sum() and avg() query functions
pmseries: persist canonical query expressions to Redis
pmseries: fix HMSET calls when querying timeseries expression
pmseries: fix for failing queries with disjuncted qualifiers
pmseries: fix segfault in func call with globbed metric.name
- Server-side utilities and log management scripts:
pmproxy: support fabricated SIDs in /series/instances requests
pmproxy: support fabricated SIDs in /series/metrics requests
pmlogger_check: add pmlc connection timeout checking current volume
pmlogctl,pmiectl: ignore saved control files after an upgrade
pmlogconf: add missing mssql template header
pmlogconf: add logger configuration files for the htop command
pmieconf: add a rule to detect and report OOM kills
pmieconf: cleanup old, no-longer-used tool integrations
pmieconf: ensure all automated invocations use the -c switch
pmieconf: fix default generated config file path
pmie_check: remove a tempfile once finished with it
- PMDA additions, enhancements and bug fixes:
pmdaapache: fix buffer size to allow for multiple reads of the stream
pmdabcc: added new netproc module with per-process network metrics
pmdaproc: allow to use acct.control.enable_acct as reference counting
pmdalinux: added network.all.* metrics for physical interfaces
pmdalinux: fix case of waitio counters from /proc/stat going backwards
pmdalinux: minor tweaks to use integer math over floating point
dbpmda: send inst profile prior to instances level label requests
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: performance improvements for archives with dynamic indoms
libpcp: send instance profile for instances level labels requests
libpcp: make pmLookupName take a (const char **) namelist
libpcp_web: set pmseries source to all-zeroes for expressions
libpcp_web: handle fabricated SIDs in /series/values REST API
python api: fix fetchgroup max_insts size with multiple indoms
- Misc build, infrastructure and packaging updates:
build: drop deb arch-deps on Infiniband libs as they are pervasive
build: fix version dependencies between deb sub-packages
build: install BCC PMDA config files below /etc not /usr
build: drop the old XML docbook format for books
build: remove systemd timer services in rpm %preun scriptlet
- Security Enhanced Linux:
selinux: use matching autoconf guard for rawip_socket class
- Documentation and QA infrastructure:
docs: update pmdabpftrace man page and README
docs: improvements in diagrams
docs: theme_overrides.css added for readthedocs content
docs: pmseries(1) chapter added in Users and Administrators Guide
docs: add quotes to curl calls with * in pmwebapi query strings
docs: update pmseries schema to describe expression keys
ci: cleanup container init command
ci: update mariadb package in debian 11
ci: fix rawhide (dbus service wasn't activated)
ci: update centos6 platform to use the "vault" since el6 is EOL
pcp-5.2.2 (11 November 2020)
- Client tools and utilities:
pcp-atop: add support for process accounting
pcp-atop: use floating point (not integer) delta in more places
pcp-atop: sort interface names for output determinism
pmchart: record mode, keep "local:" arg for launched pmloggers
- Server-side utilities and log management scripts:
pmcd: init NSS read-only when using secure connections
pmproxy: move forward to most recent http_parser update
pmproxy: fix redisfmt reply length mismatch on 32bit platforms
pmproxy: Access-Control-Max-Age header, CORS preflight request caching
pmproxy: make no-label-values response consistent with regular response
pmproxy: handle proxying of Redis binary strings
pmproxy: improve /pmapi/metrics error handling with mixed requests
pmproxy: improve /pmapi/query error condition handling
pmproxy: fix incorrect use of %u in redisfmt for reply element count
pmproxy: consistent empty response for /search/{text,indom,suggest}
pmproxy: fix handling of multiple names in metrics API
pmproxy: plug mem leak in redisfmt
pmieconf: remove integrations with software that no longer exists
pmlogconf: remove pmlogconf templates specific to IRIX
pmlogconf: produce less verbosity when running automated
pmrepconf: produce less verbosity when running automated
pmlogctl: fix a couple of small corner-case issues
pmfind_check: with -N option, don't try to remove log file
pmie, pmlogger scripts: defensive changes for temp file removal
pmlogger scripts: fix pmlc/pmlogger race causing pmlogger_daily to hang
- PMDA additions, enhancements and bug fixes:
pmdalinux: additional mem.vmstat metrics from /proc/vmstat
pmdalinux: fix drop_pagecache and drop_slabs metrics
pmdalinux, pmdakvm: help texts fallback to short-form
pmdalinux: use _pm_assign_ulong for disk.dev.read_bytes and co
pmdalinux: fix cases where /proc/stat waitio counters go backwards
pmdaperfevent: add support for hv_24x7 core-level events
pmdaperfevent: add support for hv_gpci perf events
pmdanetcheck: rework to accommodate some QA failures
pmdaactivemq: fix several runtime and compile issues
pmdakvm: install kvm.conf in /etc, help text for trace metrics
pmdakvm: fix detection of kernel lockdown mode
pmdaelasticsearch: improve diagnostics and error handling
pmdaelasticsearch: add short-circuit checking to constructor
pmdaxfs: free_inode, rmap and refcount btree stats, dquots
pmdamssql: improved error handling on failed SQL Server connection
pmdarpm: add logic to deal with the location of the RPM DB
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: handle EINPROGRESS from connect() in __pmConnect
libpcp: add labels.conf file initially controlling machineid
libpcp: send instance profile for instances level labels requests
libpcp_web: fix query rate() function
libpcp_web: merge updated query grammar, add rate() actions
libpcp_web: use more efficient sds formatting in places
libpcp_web: fix 32bit int overflow in timeval_stream_str()
libpcp_web: fix double-free in binary query/expr functions
libpcp_web: fix query.c memory leaks found by coverity scan
libpcp_web: keep meta-data qualifiers in canonical expressions
libpcp_web: drop noop() from /series/query language
libpcp_web: functions/expr without time window return SID
python api: fix pylint error from undefinied __init__ names
- Misc build, infrastructure and packaging updates:
build: drop IRIX files from pmlogconf
dbpmda: small fixes, add getiname command
build: fix rpm spec permissions for pmie and sa directories
build: add versioned rpm spec dependencies for pcp-zeroconf
build: add more missing empty directories to tar packages
build: add pylint static checking for the nfsclient PMDA
build: resolve Debian build dependency on -all- py3 package
build: update debian build deps for arch-dependent packages
build: make the python odbc package dep explicit for mssql
- Documentation and QA infrastructure:
Numerous changes to the books for https//pcp.readthedocs.io
Numerous changes to the platform package detection logic for QA
ci: implement timeout and retry for bintray release script,
ci: show symbols in slack channel (green, warning, error)
ci: add a 32bit build and continuous integration setup
ci: add CodeQL
docs: switch pmcd from digest-md5 to scram-sha-256 authentication
docs: update pmlogger_daily(1) for -x, -K, -k; $PCP_COMPRESSAFTER
docs: document that trailing \n is not needed for pmNotifyErr
docs: add final help text entries for interrupts metrics
docs: add missing help text for nfsclient metrics
docs: add help text for mssql derived metrics
docs: add help text for event.* metrics
docs: fix a couple of minor REST API typos
docs: make the curl REST API examples cut+paste friendly
docs: add a man page describing /etc/pcp/labels.conf
docs: update pmseries(1) for query expressions and functions
pcp-5.2.1 (25 September 2020)
- Client tools and utilities:
pcp-atopsar: fix accumulation (-R) mode
pcp-atopsar: fix a command line args handling issue
pcp-dstat: fix handling of explicitly requested instances
pcp-dstat: fix scale conversions for certain cases
pcp-dstat: add --redis-mem and --redis-client configs
pcp-dstat: add GPFS configs
pcp-free: use output matching procps-ng free(1) now, add -w (wide) form
pcp2elasticsearch: fix off-by-one counting on instance checking
pcp2elasticsearch: add a new -m/--include-labels option
pcp2spark: fix off-by-one counting on instance checking
pcp2spark: add a new -m/--include-labels option
pmchart: save hostname (not local:) in views and folios when recording
pmlogger: fix 'repeated metric' problem on some configurations
pminfo: ensure final character of series/source hash printed
pmrepconf: new utility to generate pmrep/pcp2xxx configs
pmrep: add config for iostat-dktx-dm (device mapper)
pmrep: consider pmiPutLabel error fatal
- Server-side utilities and log management scripts:
pmproxy: REST API support for per-context derived metrics
pmproxy: fix REST API time series ids for metrics with indom
pmproxy: fix exclude.metrics handling from configuration file
pmproxy: fix memory corruption from missing table entry for search
pmlc: add disconnect and sleep commands
pmlogctl: small glob fix for *BSD sh(1)
pmlogmv: deal with glob and egrep special chars in filenames
pmlogmv: rewritten from shell script to C program
- PMDA additions, enhancements and bug fixes:
pmdabcc: check return value of lookup_or_init
pmdabpftrace: pass bpftrace script by stdin instead of command line
pmdamssql: add support for Windows authentication
pmdaelasticsearch: install a default configuration file
pmdaopenmetrics: fix json in label callbacks
pmdaopenmetrics: add config filter for optional labels
pmdaopenmetrics: add METADATA support in URL configuration files
pmdaopenmetrics: improve metadata, instances, config and labels handling
pmdaopenmetrics: allow optional labels to be tagged as such
pmdaproc: fix proc.psinfo.cgroups buffer sizing problem
pmdaproc.sh: remove forced_restart to avoid pmcd rc script recursion
pmdaproc.sh: quieten generation of domain.h and pmns for Python/Perl
python PMDAs: add python_opt=true to Remove script
perl PMDAs: add perl_opt=true to Remove script
dbpmda: fixed memleaks, parser for debug command
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings:
libpcp: handle absolute paths to archives when using --archive-folio
libpcp: new PMAPI methods for per-context derived metrics
libpcp: refactor __pmGetArchiveEnd_ctx() to fix segv on corrupt log
libpcp_web: add arithmetic expression to timeseries query language
libpcp_web: add initial functions to timeseries query language
libpcp_web: further improvements to help text search
libpcp_web: add context structure reference counting
python api: allow optional label creation by PMDAs
python api: fix pmGetInstancesLabels return labelset for singular indom
- Misc build, infrastructure and packaging updates:
configure.ac: OpenBSD changes
pmlogconf: fix OpenBSD 6.7 compiler warning
pmdaopenbsd: placate a picky compiler on OpenBSD 6.7
Makepkgs: for Gentoo build w/out Python2
pmrep/pcp2xxx: minor man page tweaks
build: fix openmetrics /etc paths, add spark url (disabled)
build: install pcp-atopsar(1) and pcp-atoprc(5) man pages
build: resolve several QString::null warnings in pmchart and pmtime
build: guard use of some Qt5-only functions in pmchart and pmtime
build: provide a 'force' install mode to override /var checks
build: fortify some code against gcc10 malloc(0) warnings
- Security Enhanced Linux:
selinux: handle proc_security_t not being defined for CentOS 6.10
- Documentation and QA infrastructure:
man: new and updated man pages for per-context derived metrics
docs: pmdelprofile(3) important "or" vs "and" correction
docs: fix typo in disk.all.aveq metric help text
docs: add helptext for iostat derived metrics
docs: add helptext for proc.hog derived metrics
docs: fix formatting on pmgetchildrenstatus man page
pmdasample: switch to deterministically seeded random number generator
qa: add not_in_ci group infrastructure for individual tests
qa/admin/pcp-daily: add -l (--login) for remote sh -c
qa: require kernel headers of running kernel for all BCC tests
ci: create bintray repository and package if it doesn't exist
ci: ensure libuv is installed on all platforms
ci: prune caches on network failure
ci: add --until argument to reproduce command
ci: don't update packages on Github actions
ci: send daily status reports to #pcpqa slack channel
pcp-5.2.0 (7 August 2020)
- Client tools and utilities:
pmiectl: (new) experimental pmie control utility
pmlogctl: (new) experimental pmlogger control utility
pmlogpaste: (new) log string metric paste facility
pmsearch: (new) full text search for metrics, instances and help
pmfind_check: connect to pm{ie,log}ctl
pmfind_check: deal with strange exit status from pmfind(1)
pmlogconf: fix intermittent core dump
pmlogconf: fix resource leak found by coverity scan
pcp-atop: resolve other paths of potential null task pointer dereference
pcp-atop: fix logic around the end of an optional time window
pcp-atop: implement several RFEs relating to time navigation
pcp-atopsar: fix memory allocation problem with some options
pmie_dump_stats: (new) helper to dump pmie stats files
pmieconf: add network rules detecting socket connection saturation
pmie.c: move systemd notify call earlier
- Server-side utilities and log management scripts:
Retired standalone pmmgr daemon - see pcpcompat(1) for details.
pmproxy: improve diagnostics, particularly relating to http requests
pmproxy: support the OPTIONS protocol in HTTP 1.1
pmproxy: allow URLs up to 8k in length
pmproxy: escape help text before returning it in JSON payload
pmproxy: improve handling of series APIs with empty results
pmproxy: accept /pmapi/store value in the message body
pmproxy/rc_pmproxy: remove $tmp (dir) before exec
services: pmlogger and pmie services want pmcd on boot
services: assorted systemd oneshot services use KillMode=none