forked from performancecopilot/pcp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
3968 lines (3803 loc) · 212 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-4.3.2 (26 April 2019)
- Work in progress, see https://pcp.io/roadmap
pcp-4.3.1 (27 February 2019)
- Client tools and utilities:
pcp-dstat: improve --time option handling with no other arguments
pcp-dstat: handle complete instance removal with --full mode
pcp-atop: update to v2.4.0 atoptool.nl sources
. reporting pressure stall information
. reporting infiniband statistics
. reporting perf_event statistics
. reporting nvidia GPU stats
pmseries: error handling improvements when parsing fails
pmseries: ensure commas separate labels in metadata reporting
pmseries: improve user friendliness of option handling
pmseries: shell completions added
pmseries: install a pmseries.conf
pmseries: globbing support on global name lookups too
pmrep: add support for sorting -X output by values
pmrep: fix a dynamic header corner case with missing values
pmlogger: add systemd timers as cron alternative
pmie: add systemd timers as cron alternative
pmie: re-implement #'instancename' indom lookup
pmie: fix for segv and bad sum_inst() use
pmview: fix a missing timeout slot connection
pmview: add in the step() signal/slot connections
- PMDA additions, enhancements and bug fixes:
linux: add support for pressure-stall information metrics
openbsd: remove remaining /dev/kmem reading
openbsd: fixes for 32 bit kernels
openbsd: add kernel.all.uptime
openbsd: fix cpu time metrics - SMP and CP_SPIN support
netbsd: fixes for 32 bit kernels
netbsd: add kernel.all.uptime
bcc: handle gone processes in ustat module
bcc: adjust biolatency module tracepoints
dm: new VDO device metrics
dm: fix mishandling of missing VDO kernel stats
nvidia: add support for per-process nvidia metrics
pmproxy: extend MMV to support new pmproxy metrics
- Server-side utilities and log management scripts:
pmcd: allow use of an optional pmcd.conf.access file
rc_pmcd: optional PMDA ./Upgrade to resolve upgrade issues
pmproxy: fix shutdown issues in --timeseries mode
pmlogger_check: make pmlogconf check optional
pmlogconf: add per-CPU interrupts metrics to the zeroconf set
pmlogconf: additional /proc/vmstat metrics to default set
pmwebd: tweak y-axis labels in png output
pmwebd: fix an open file descriptor leak
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings
libpcp: fix compilation for --with-threads=no configure
libpcp: exclude indom instances level labels in result from pmLookupLabels
libpcp: the big libpcp lock is no longer recursive
libpcp: refactor registered.mutex use
libpcp_web: add .ini configuration file parsing
python pmapi: add __str__ handler for class pmLabelSet
python api: Rename pmconfig.py helper function - get_sorted_results()
- Misc build, infrastructure and packaging updates:
python: fix Python installations flags for DIST_ROOT=
Revert "pmlogger_daily: use whole day granularity for PCP_COMPRESSAFTER"
Wider use of automated builds through Vagrant for QA and releases
build: add -I paths for cppcheck, fix travis-ci checking
build: add conditional BuildRequires libuv-devel in fedora.spec`
travis-ci: tweak service timeouts
pmns: don't package .NeedRebuild for SUSE distros
pmns/Rebuild: add warning (with -v) for skipped root_foo file
Qt: correctly insert compiler flags, release vs debug build fixups
configure, Makepkgs, et al: move Qt version detection into configure
- Security Enhanced Linux:
Update shm,sem permissions for userdomains
Reduce size of policy package (now that we have overarching rules)
- Documentation and QA infrastructure:
qa/admin/check-vm: refactoring and customization for all platforms
qa/common.check: improvements for pmlogger and pmie tests
build: add fedora/rhel testsuite dep on redhat-rpm-config
docs: update pmLookupLabels(3) and pmseries(1)
qa: pervasive NetBSD, OpenBSD and OpenIndiana changes
pcp-4.3.0 (21 December 2018)
- Client tools and utilities:
- Add pmseries(1) for fast, scalable time series querying (experimental)
- pmrep, pcp2xxx: add support for the --names-change option
- pmrep, pcp2xxx: support for the --ignore-unknown metrics option
- Implement the dstat --full option to expand instances
- Add an 'entropy' dstat plugin configuration file
- pcp2elasticsearch: support for es_search_type config flag
- pcp2elasticsearch: reduce logging in server down scenarios
- pcp-atop: fix an incorrect use of varargs vfprintf interface
- pmlogextract: numerous scalability improvements
- pmchart: fix sigsegv on non-existant archive via command line
- PMDA additions, enhancements and bug fixes:
- FreeBSD: add kernel.all.uptime, mem.freemem metrics
- FreeBSD: fix 32 vs 64 bit types on memory and CPU metrics
- FreeBSD: fix units on some disk (bytes) metrics
- FreeBSD: fix CPU count logic error affecting per-CPU metrics
- perfevent: add hv_24x7 perf events
- perfevent: add support for raw perf events
- pmdapostgresql: add optional 'osuser' to configuration
- Log rotation, management scripts, compression and server-side utilities:
- zeroconf: change logging frequency for proc metrics to 30 seconds
- rc scripts: improve systemd interaction for local pmie
- pmlogger_daily: whole day granularity for PCP_COMPRESSAFTER config
- pmlogger_check: resolve a 'cat: broken pipe' warning message
- pmlogrewrite config files for FreeBSD metadata changes
- pmproxy: auto-loading of historical timeseries from discovery
- pmproxy: add --timeseries option to switch libpcp/uv versions
- pmwebd: tolerate live archives with multi-hour-old volumes
- Misc build, infrastructure and packaging updates:
- Fixed RHEL-5 build packaging for nfsclient and lmsensors PMDAs
- Enable dstat -> pcp-dstat binary symlink on more platforms now
- Drop the elasticsearch python[23]-urllib3 spec file dependency
- Changes for Mac OS X HomeBrew build and packaging
- Support for Mac OS X Mojave latest release
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings
- libpcp: instance filtering for derived metrics
- libpcp: add scalar() for derived metrics
- libpcp: fix process existence checks on FreeBSD
- libpcp: be more defensive in pmMergeLabelSets
- libpcp: add an integrity check in __pmMergeLabelSets
- python pmapi: fix a crash in labels wrapper functions
- python pmapi: fix a crash in fetchgroup clearing function
- python pmapi: rework labels lookup, merge and free functions
- python pmconfig: fix logic error in get_sorted_results function
- python logimport: fix wrong variable usage in pmiPutLabel
- Security Enhanced Linux:
- Generic policy rules to allow pcp_pmcd process to read system objects
- Fix the build on older selinux versions (RHEL6 era)
- Documentation and QA infrastructure:
- logimport(3): new pmiPutLabel(3) API function for adding labels
- docs: improve formatting for Vector containers screenshot
- docs: tweaks for pcp-dstat.1 to use same conventions as pmrep.1
- docs: correct typo in INSTALL notes for MacOSX
- docs: fix formatting in mmv(5) labels section, add more detail
- docs: add python synopsis and examples in pmMergeLabels(3)
- docs: add python synopsis in pmLookupLabels(3)
- qa/README.vm: instructions for setting up VMs for QA
- qa: add kernel group for base OS PMDA testing
- qa: add sample.controller.mirage to sample PMDA
- qa: numerous Vagrantfile updates and improvements
- qa: add helper tool for reporting internal/external sha IDs
- qa/admin/check-vm: Mac OS X changes
- qa/admin/check-vm et al: refactor for Vagrant
pcp-4.2.0 (16 November 2018)
- Client tools and utilities:
- pcp-dstat: fix cursor offsetting in unusual terminal states
- pcp-dstat: additional exception handling for I/O error on exit
- pcp-iostat: remove variable named 'await', now a keyword
- pmchart: ensure only one system activities menu item is presented
- pmchart: fix incorrect use of std::vector::resize() for single stepping
- pmie: fix small error in expression tree binding
- pmie: fix instance info propogation when metrics become available
- pmie: fix rare corner case logic errors
- pmrep, pcp2{json,xml}: properly handle broken pipe
- PMDA additions, enhancements and bug fixes:
- pmdapodman (new): export podman container and pod state and statistics
- pmdaroot, pmdaproc: add support for 'podman' containers
- pmdapostgresql: fix regression in config parser
- pmdapostgresql: add port number to config options
- pmdapostgresql: tone down the missing table and column warnings
- pmdabcc: add ucalls/ustat Tcl support
- pmdalmsensors: re-implement in python, update
- pmdadocker: fix a missed lock release issue coverity reported
- pmdaelasticsearch: Change perl implementation to python
- pmdaelasticsearch: enable user selection from conf file
- pmdanetbsd: add hinv.machine
- pmdaopenbsd: fixups for OpenBSD 6.4
- pmdasample: add sample.ghosts.* metrics
- Log rotation, management scripts, compression and server-side utilities:
- pmlogger_daily: change workflow to cull early and reliably compress
- pmcd_wait: default to using unix domain sockets if supported
- pmlogrewrite: Bug: Too many labelsets deleted.
- pmlogrewrite: Allow instance names to be used to specify instances labels.
- pmlogrewrite: Remove support for "ALL" as a text record type.
- pmlogrewrite: escape characters in the content string for text records.
- pmlogrewrite: Help Text: Support filtering by content.
- pmlogrewrite: Help Text: Additional text type allowed.
- pmlogrewrite: fix error handling when duplicate output files found
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings
- pmdaproc.sh: change a few warnings to use $prog instead of Install
- libpcp: fix buffer length error in pmAtomStr_r(3)
- python api: propagate pmFetch(3) result for fetchgroup users
- Security Enhanced Linux:
- selinux: update container policy for pmdaroot/podman
- selinux: fix bpf related build issue
- selinux: RHBZ1626487 unix_read on gpsd_t:shm
- selinux: RHBZ1633211 bpf class & inheritence issues
- selinux: RHBZ1634205 add pmlogger/cache_home context dir:search
- selinux: RHBZ1635394 fix configure glue to trigger existing rule inclusion
- selinux: RHBZ1535522 add pmcd/cache_home context dir:search
- Misc build, infrastructure and packaging updates:
- build: Fix FreeBSD Qt builds
- build: fix a number of Debian packaging issues
- build: pcp-gui debian packaging made to be conditional
- build: rpm spec and manifest updates for pmdadm dmstats
- build: deprecate pcp-collector and pcp-monitor RPM packages
- build: add option for python bcc packages from iovisor repos
- build: add --check option to Makepkgs script for static checks
- build: corrections to dstat package replacement in rpm spec
- Documentation and QA infrastructure:
- docs: pcp2spark doc and example code tweaks
- docs: update pmdadm(1) man page
- docs: update LOGIMPORT(3) man page to mention python wrapper
- docs: dbpmda(1) - correct default for -q ... it is 3 not 5
- docs: updates the containers tutorial for 'podman'
pcp-4.1.3 (21 September 2018)
- Client tools and utilities:
- pcp-dstat: add CSV output support for pcp-dstat
- pcp-dstat: improved handling of no-values-available scenarios
- docs: add an example of remote host monitoring in pcp-dstat(1)
- pmlogrewrite: Initial support for creating new label records.
- pmlogrewrite: Operate on labels for individual instances and labels.
- pmlogrewrite: Support changing label names and values.
- pmrep: enable proc net metricset in default pmrep.conf
- pmrep: properly omit unit info with separate header when requested
- pmrep: add compact "top-3 cpu users" example in pmrep.1
- pcp2zabbix: read zabbix_port from conf file properly
- docs Improve pcp2spark man page, add readme and examples
- pcp2spark: add bash/zsh completions
- PMDA additions, enhancements and bug fixes:
- provide trivial-pmda perl and python versions as well
- pmdakvm: fix checks for running without perf_event support
- pmdaperfevent: return correct CPU numbers in lower SMT levels
- pmdapostgresql: support postgresql v10, implement reconnection
- pmdapostgresql: completely reimplemented in python
- pmdapostgresql: intialize pmdaCache files to be group writeable
- docs: update pmdapostgresql(1) man page
- pmdaredis: handle Redis v5 memory stats changes
- pmdabcc: add support for dynamic process filtering
- pmdabcc: tcpretrans: use TGID not kernel PID as user-space PID
- pmdabcc: add module to trace per-proc per-syscall stats
- pmdabcc: add ucalls module for tracing app method calls
- pmdabcc: use module name as cluster label
- pmdabcc: return error from store callback by default
- pmdabcc: add detailed per-pid per-syscall support for syscount
- pmdabcc: add high-resolution pid tracking alternative to tcpperpid
- pmdabcc: add latency support for syscount module
- pmdabcc: add process filtering support for fs dist modules
- pmdabcc: try to use BPF to capture parent PID in execsnoop
- pmdabcc: allow modules to bypass pmdaCache
- pmdabcc: update TCP modules for dynamic process filtering
- pmdabcc: add cachestat module
- pmdabcc: use two-step cache invalidation in bioperpid
- pmdabcc: support call latency reporting in ucalls module
- pmdabcc: exit poller thread if BPF is cleaned up
- pmdabcc: omit residual IO attributed to PID 0 by default
- pmdabcc: rework tcpperpid caching to report total transfer stats
- pmdabcc: add ustat module based on BCC ustat
- docs: minor pmdabcc.1 man page and bcc.conf updates
- pmdaprometheus: fix exception in store callback
- pmdaprometheus: instance labels were incorrectly returned as metric labels
- Log rotation, management scripts, compression and server-side utilities:
- pmlogger_check: run periodic compression when exiting early
- pmlogger_rewrite: cleanup temporary /var/tmp/<pid>.ok files
- daily/check scripts: consistently set log file ownership
- libpcp, libpcp_pmda, libpcp_mmv, libpcp_web and language bindings
- add new default derived metrics for processes 'hogging' cpu/mem/disk
- use rescale() in iostat derived metrics for disk.dev.*_bytes units
differences across platforms
- further improvements to large indom handling performance
- conversion to asynchronous I/O for scalable time-series
- python PMDA API: python bindings for pmid_build() and indom_build()
- add checking of label names and values in libpcp_mmv
- improve libpcp_mmv memory allocation for labels, add QA
- Security Enhanced Linux:
- added several new rules and QA
- resolved AVCs in pmproxy and pmie
- updates for postgresql AVC denials
- Misc build, infrastructure and packaging updates:
- drop $pmda_interface on Install
- pmdaproc.sh: remove pmda_interface references throughout
- pmns/Rebuild: conditionally omit some root_foo PMNS files
- add an appropriate libuv version check to configure
- 'make check' support with cppcheck and pylint
- disable python2 for fedora30 onward
- fix warnings identified by coverity, and compilation warnings
- correct the SLURM package descriptions
- make perl-LDAP a soft dependency on some platforms
- spec file fixes for nfsclient and postgresql PMDAs
- install-sh fix for *BSD strangeness
- configure.ac checking for pcp2influxdb packaging
- do not attempt symlink creation on Windows
- windows: fix a pmcd crash, a client-side issue and update services
- scripts: create tmpfiles below PCP_DIR for windows
- docs: additional detail on Windows build instructions
- Web applications
- new versions of Vector and BlinkenLights webapps
pcp-4.1.2 (4 August 2018)
- Debian-specific-build release
pcp-4.1.1 (3 August 2018)
- Log rotation, management scripts, compression and server-side utilities:
- pmlogconf: add some GFS2 metrics for automated pmlogconf setups
- pmlogger: output write re-ordering to aid log tailing
- pmlogger_daily: add -R (and .NeedRewrite) support
- pmlogrewrite: initial support for rewriting label records
- pmcd: fix subtle bug in agent shutdown code (affecting pmdabcc)
- Client tools and utilities:
- pcp2spark: export PCP metrics to Apache Spark
- pcp2influxdb: fix mishandling of zero-valued metrics
- pcp-dstat: support for PCP archive replay
- pcp-dstat: use context to get hostname for terminal title
- pcp-dstat: use more python-version portable set comprehensions
- pcp-dstat: recreate the original --version output using PCP metrics
- pcp-dstat: fixes to the disk plugin configurations
- pcp-pidstat: add direct support for the timezone options
- mmvdump: support for the version 3 format (metric labels)
- dbpmda: various Windows-driven changes
- pmcpp: Windows fix for \r in the input text
- PMDA additions, enhancements and bug fixes:
- pmdaproc: tweak proc.memory.maps to return empty string for kernel workers
- pmdakvm: new, configurable, perf_event-based kvm.trace metrics
- pmdakvm: switch from perl to C implementation, enable by default
- pmdammv: support for exporting metric labels (v3 format)
- pmdaproc: rework code to handle much larger /proc/pid/stat files
- pmdaproc: improve proc.psinfo.environ for processes with no environment
- pmdabcc: profile module
- pmdabcc: compat wrapper for get_kprobe_functions
- pmdabcc tcptop: log current number of connections
- pmdabcc: add pmStore support
- pmdabcc: add exectop module
- pmdabcc: use newer kprobe with ext4dist if available
- pmdabcc: tcpretrans module added
- pmdabcc: biotop tool - fetches block device I/O activity and sorts it
- pmdabcc: rename biotop to bioperpid
- pmdabcc: restore old tcplife module as tcpperpid
- pmdawindows: process.thread.process_id metric removed (since Windows10)
- pmdagfs2: additional Glock and Glock Holder metrics
- libpcp, libpcp_pmda, libpcp_web and other libraries
- libpcp_mmv: new APIs, registry-based setup, labels support
- python pmdas: improve scaling; release GIL while waiting for new PDUs
- pmconfig.py: handle predicate metrics being filtered out
- libpcp: fork+exec and pipe+fork+exec changes for Windows
- libpcp_web: initial cluster support to Redis commands
- derived metrics: avoid divide by zero exceptions in iostat.conf
- Security Enhanced Linux:
- selinux: add gpsd context rules allowing shm access via associate, getattr
- selinux: add init_t shm rule for accessing via unix_read
- selinux: policy improvements for the GFS2 PMDA
- selinux: policy improvements for the Redis PMDA
- Misc build, infrastructure and packaging updates:
- build: many changes for the Windows platform, towards a new installer
- build: changes to support completely reproducible builds
- build: series of changes to support MacOSX brew package builds
- build: do not assume gcc is used for building Qt binaries
- Documentation and QA infrastructure:
- docs: pmrep and pcp2xxx container option man page correction
- docs: updates to the pcp-dstat(1) man page for archives
- docs: updates to the MacOSX build and install instructions
- docs: updates to the Windows build and install instructions
pcp-4.1.0 (15 June 2018)
- Log rotation, management scripts, compression and utilities:
- pmlogger_daily_report: use unambiguous time window arguments
- pmlogger_check: pass command line options to pmlogger_daily
- pmlogger_daily: make SaveLogs name match /var/log/pcp/pmlogger name
- pmlogger_daily: compress .meta files
- pmlogger_daily: send -V diags to stderr
- pmlogger_check & pmnewlog: add optional SaveLogs support
- pmlogger_check: clear any zero-length pmlogger configs
- pmlogger_merge: fix corner cases, esp for compressed archives
- pmnewlog: honour any /etc/sysconfig/pmlogger settings
- pmdumplog: changes to handle compressed archives
- pmlogrewrite: support reassociation with other metric or indom
- pmlogrewrite: support changing and deleting text records.
- pmlogrewrite: add -S (check and status) option
- pmlogrewrite: Allow newline in updated help text.
- pmlogger: fix for trashed temporal index after infant mortality
- pmmgr: handle compressed .meta and/or .index files in cleanup stanzas
- pmafm: teach mkaf and pmafm about compressed archives
- pmlogcheck: extend unexpected EOF diagnostic message
- pcp-dstat - (new) reimplementation of dstat(1) using PCP APIs:
- zsh completion: dstat help output tweak to aid zsh completion
- pcp-dstat: add interrupts and several other new conf files
- pcp-dstat: improvements to dynamic instance handling
- pcp-dstat: initial QA, python2 compat fixups, enable in build
- pcp-dstat: update to use updated pmconfig interface name
- pcp-dstat: improved config labels and metrics with instances
- pcp-dstat: add fs freespace and redis plugins, update TODO
- pcp-dstat: add utmp plugin config, now the kernel metrics exist
- pcp-dstat: initial version of dstat using PMAPI services
- Client tools and utilities:
- pmrep: add config entries for emulated collectl reports
- pmrep: ensure output column ordering consistency
- pcp.sh: provide alternative if realpath(1) not available
- pcp.sh: use full path to pmgetopt in case PATH not set (Mac)
- pcp.sh: add a handy developer mode to the pcp(1) frontend
- pmval: plug small memleaks
- pmnsutil: small code cleanup for static code checkers
- pmcpp: ensure va_end is called for static code checkers
- pmie: ensure we do not use an uninitialised path variable
- pmie: handle -l- correctly for logging to stderr
- pmprobe: support batching for name lookups and fetching
- pmprobe: add bash and zsh completions for -b
- pcp2xlsx: add missing test chunk, use correct out file
- pcp2xlsx: switch from using xlsxwriter to openpyxl
- libpcp and libpcp_pmda:
- libpcp: logutil.c, check for botched temporal index
- pmParseTimeWindow(): fix double-free error
- libpcp_pmda: clean namespace, attribute and flags interfaces
- pmda.py: support for logfile and helptext file in PMDA __init__
- libpcp: pmOpenLog() support logging to existing stream
- libpcp: fix handling of labels with an empty string value
- libpcp: labels.c, handle different domainname() result
- libpcp_pmda: mainloop.c, add debug diags in __pmdaMainPDU()
- libpcp_web:
- libpcp_web: add pmDiscover API for asynchronous PCP data export
- libpcp_web: integrate libuv and async event handling
- libpcp_web: simplify error handling using a common helper
- libpcp_web: properly set redis blocking/non-blocking
- libpcp_web: first steps towards Redis cluster support
- pmseries: properly implement the redisMap mapping type
- pmseries: initial support for cluster node map extraction
- pmseries: small cleanups on early cluster code review
- Security Enhanced Linux:
- selinux: update comments, additional script robustness changes
- selinux: abstract spec file bits into an installed script
- PMDA additions, enhancements and bug fixes:
- pmdadm: fix segfault and memleak in dmstats
- pmdalinux: add aggregate interrupt and softirq counters
- pmdalinux: nfs server metric semantic fix pmlogrewrite rules
- pmdalinux: fix af_unix conn stats same as udp/tcp earlier
- pmdalinux: udp, raw and unix domain connection metrics
- pmdalinux: code simplification, cleanup in /proc/locks code
- pmdalinux: add vfs.locks.posix, flock and lease metrics
- pmdalinux: add kernel.all.nsessions and nroot users metrics
- pmdaprometheus: support the -l logname and -d domain options
- pmdaprometheus: fix scripted configs, broken after label filtering
- correct semantics for proc_fs_nfsd.th_cnt and proc_fs_nfsd.pool_cnt
- pmdammv: resolve an instance domain setup problem
- pmdaproc: add the per-process proc.psinfo.oom_score metric
- pmdasample: fix emerging gcc warnings
- zbxpcp: fix path to auto-enable zbxpcp module for zabbix_agentd
- zbxpcp: fixes, perf improvement for zabbix agent module
- NetBSD and OpenBSD PMDAs: fix for returning a buffer on the stack
- FreeBSD PMDA: add some metrics
- activemq PMDA: hide this PMDA's perl modules behind PCP::
- configure.ac: activemq PMDA needs JSON Perl module as well
- pmdabcc: tcplife: recycle instances - use row number as instance key
- pmdabcc: fix tcplife dport, styling
- pmdabcc: tcplife: track sessions independently, add more metrics
- pmdabcc: configurable failure modes for module errors
- pmdabcc: explain process filtering in the pmdabcc(1) man page
- pmdabcc: disable ext4dist per default, add xfsdist and zfsdist
- pmdabcc: disable "Too many instance attributes" pylint warning
- pmdabcc: rename runqlat metric name
- pmdabcc: order histogram instances ascending
- pmdabcc: move ext4dist metric under bcc.fs name space
- pmdabcc: add ext4dist, zfsdist and xfsdist modules
- pmdabcc: add USDT JVM threads and allocation profile modules
- pmdabcc: print generated/modified BPF program if debug enabled
- pmdabcc: implement process/port filtering in tcplife
- pmdabcc: match process name on /proc/$PID/comm
- pmdabcc: add process filtering in tracepoint/uprobe modules
- pmdabcc: fix tcplife with older/newer kernel/bcc
- pmdabcc: add USDT/dtrace hit count BPF/Python module
- pmdabcc: add pid check/filter helpers, relax process check
- pmdabcc: introduce reserved ranges in bcc.conf
- pmdabcc: README and man page updates
- pmdabcc: add example hit count module configuration files
- pmdabcc: add uprobe hit count BPF/Python module
- pmdabcc: require kernel 4.6+ for QA
- pmdabcc: add config file / process helpers
- pmdabcc: add kernel tracepoint hit count BPF/Python module
- pmdabcc: clean up bcc.conf comments
- pmdabcc: add label support
- pmdabcc: always create the first bucket inst for histograms
- pmdabcc: don't create instances for empty buckets at top end
- pmdabcc: add runqlat tool
- Misc build, infrastructure and packaging updates:
- build: Add conditional clause around disable_python2
- build: resolve ENODATA re-define warning on latest Win32 headers
- build: fine-tune libpcp cross-compiler make settings for Windows
- build: remove procfs checks entirely in configure now
- build: add pmieconf static binary cross-compile check
- build: support Windows native build
- build: remove pcp.conf dependency from selinux-setup script
- build: fix pcp-export-pcp2xlsx dependencies
- build: rpm spec file updates related to python, pmrep and dstat
- build: add some more platforms into the bintray scripts
- build: switch travis-build coverity notifications to pcp list
- build: add automated coverity checking to travis builds
- build: update travis to use fedora:latest container over f27
- build: add new bcc config files to the installed set
- build: add configure and builddefs support for libuv
- build: add Makepkgs --configure option to stop after configure
- build: fix /var/run/pcp ownership in fedora spec file
- build: fix license text warnings from specfile check tools
- build: add missing shebang lines else latest rpmbuild fails
- build: include python3-bpfcc as a dependency for debian
- build: update check-statics for Mac OS X clang brew builds
- formatting strings: %I64i used instead of %lld
- build: switch from http to https for pcp.io src references
- build: fix rpm spec deps, update to https for pcp.io
- build: fix yet another multilib header regression
- build: fix typo in rpm spec file for smart pmda deps
- build: add more platforms to bintray-version script
- coverity: possible buffer overrun, use strncpy() instead of strcpy()
- coverity: plug a memleak on a socket func error path in libpcp
- coverity: plug a memleak on a labelset pointer in libpcp
- coverity: plug memleak on socket func diagnostic in libpcp
- coverity: fix memleak on error path in libpcp_qmc update
- coverity: fix use of freed stream in libpcp_pmda diagnostic
- coverity: fix out-of-scope local buffer use in libpcp units.c
- coverity: fix memleaks during testing for localhost
- coverity: fix unconditional uses of null name in new context
- coverity: do not use stderr after freopen on stderr failure
- coverity: fix lookup labels api error path memleak
- coverity: fix getopt time window parse error path memleak
- Documentation and QA infrastructure:
- check-archives: rework for expected/different marking of log files
- check-archives: fsck for a forest of PCP archives
- __pmparsectime.3: clarify syntax for string argument (date formats)
- docs: update remaining pcp.io references to https
- docs: add release and coverity links to README.md
- man/html/portability-and-qa.html: First real version
- docs: add the CII best practices badge to README.md
- docs: switch HACKING to markdown, add a security section
- man/html/portability-and-qa.html: portability issues related to QA
- docs: initial version of the pcp-dstat(1) manual page
- docs: switch http to https for various pcp.io references
- qa/admin/pcp-daily: really enforce the BAD policy this time
- qa/admin/pcp-qa-summary: find and report tests tagged BAD
- qa/group: add missing python ones, introduce BAD group
- qa/sniff4dodgey: (new) script looking for dodgey tests
pcp-4.0.2 (11 May 2018)
- log rotation, management scripts, compression and utilities
- pmie_{check,daily}: rework .prev and -N handling
- pmlogger_{check,daily}: rework .prev and -N handling
- pmlogger_daily: add -p to poll if cronjob was missed
- pmlogger_daily: set default xz options for 10MB blocks
- client tools and utilities:
- pcp-pidstat: add new process state tracking feature
- pmlogconf: update zeroconf config for pidstat metrics
- pmrep, pcp2xxx: use new improved long-option-only method
- pmrep: fix metricsets :mpstat and :mpstat-P-ALL metric definitions
- pcp2zabbix: fix issues from low-level-discovery feature
- pcp-atop: remove the long-deprecated pmatop symlink
- pmstat: fix bogus warning in local context fallback mode
- pminfo: cleanup instance name and instance label caching
- sar2pcp: updates for recent versions of sysstat
- zbxpcp: ensure errmsg accompanies SYSINFO_RET_FAIL returns
- shell completion: update pcp2zabbix lld arg handling
- add low-level-discovery support to pcp2zabbix
- pcp-zeroconf: zero configuration package for support environments
- pmlogconf: update zeroconf config for pidstat metrics
- PMDA additions, enhancements and bug fixes
- pmdaprometheus: add support for label filtering in URL configs
- pmdaprometheus: set PMNS_CHANGED flag more aggressively
- pmdaprometheus: perf improvement - add a compiled regex cache
- pmdaprometheus: perf improvement - avoid re-parsing config URLs
- pmdaprometheus: perf - avoid formatting debug messages if !dbg
- pmdaprometheus: fix fetch and parse time counters
- pmdaprometheus: scalability improvements, multi-threaded http get
- pmdadm: avoid segfaults if there are no dmstats regions
- pmdadm: Fix memory leak in dmstats.c
- pmdalinux: remove cdrom from disk indom
- pmdalinux: support vfs.aio metrics from /proc/sys/fs files
- pmdaproc: fix issue with container identification
- pcp-pmda-libvirt: fix rpm packaging
- pmdacifs update to support stats V2
- pmdaroot, pmdaproc: rework Docker container name heuristics
- pmdabcc: start in the "notready" state to avoid startup timeouts
- pmdanfsclient: convert from perl to python, add newer 4.2 ops
- pmdasmart: new PMDA to extract metrics from smartmontools package
- pmwebd and pmmgr
- pmwebd: Restore logic for rolling over to a new volume.
- pmwebd: Handle compressed .meta and archive volume files.
- Security Enhanced Linux:
- selinux: add fsetid cap to pcp_pmlogger_t
- pmda.smart/selinux: fix fsadm_exec_t rules
- selinux: pmlogger should be allowed the fowner cap for itself
- selinux: rhbz1565158 ipc.sem metrics
- selinux: RHBZ1565158 allow semaphore reads for mozilla_plugin_t
- selinux: rhbz1547066 Add several AVCs caught in testing
- Build: add pcp-selinux req - libsemanage
- selinux: rhbz1558708 add further policy for pmdagluster
- libpcp and libpcp_pmda
- libpcp: provide a fetchgroup reset interface
- libpcp: add OpenIndiana fix to allow pmcd connection TCP
- libpcp_fault: track exports changes over in libpcp
- libpcp: change ld VERSION file manipulation
- libpcp: Implement new archive I/O API functions.
- libpcp, pmcd: resolve an endian issue in labels protocol
- libpcp: decompression: Correctly detect fully specified archives
- libpcp: detect and handle corrupted labelset metadata in archives
- libpcp: harden labels dup routine when handed bad/missing data
- libpcp: make pmSemStr and pmTypeStr thread-safe
- Misc build, infrastructure and packaging updates
- coverity: fix memleaks, useless variable settings, off-by-ones
- coverity: fix error handling on PMDA attribute interface
- build: couple more linker tweaks for Windows builds
- build: addition for chown/chmod post install actions
- build: require coreutils (fileutils is gone)
- packaging: ensure $PCP_SA_DIR ends up with correct mode and ownership
- build: update check-statics for libpcp macosx builds
- assorted: fix compilation warnings from OpenIndiana
- configure: yet another attempt to get fmt_int64 correct
- debian/rules: pass -v down from dh_shlibdeps to dpkg-shlibdeps
- debian/pcp-export-zabbix-agent.install: add missing files
- build: add conditionals for Requires: libsemanage
- build: pid_t ... it may not be the same type as int
- build: add an explicit sans font dependency for pmwebd
- build: resolve compilation warnings with recent gcc versions
- travis: print all logs to stdout at the end of the build
- build, qa: force default locale when grepping English words
- build: Pass CFLAGS, CXXFLAGS, LDFLAGS down to qmake builds.
- fedora.spec: libvirt needs python2-lxml on rhel
- fedora.spec: python2-libvirt is for fedora >= 27
- packaging: correctly package zbxpcp.conf file
- build: improve Zabbix server integration out-of-the-box
- Documentation
- docs: add pcp-pidstat(1)
- docs: add pmClearFetchGroup(3)
- docs: document ipc_prot and notready in various man pages
- books: delete support for xmlto and dblatex in book toolchain
pcp-4.0.1 (29 March 2018)
- log rotation, management scripts, compression and utilities
- pmlogger scripts: enable immediate daily compression by default
- pmlogmv.sh: learn how to handle compressed files
- pmlogger_daily: change default behaviour for compression
- pmlogger_merge.sh: handle compressed archives
- pmlogger_check.sh: add pmlogger_daily -K callback
- pmlogger: control: add $PCP_COMPRESSAFTER=3
- pmlogger: crontab: drop pmlogger_daily command line arguments
- pmlogsize: (new) report sizes for components of an archive
- pmlogsize: add support for data volume, summary and -d (detailed)
- pmdumplog: fix sigsegv causing intermittent qa failures
- pmlogrewrite: Indirect updates to label set and help text records.
- pcp-zeroconf: zero configuration package for support environments
- add pmlogger_daily_report(1) cron script like sa2(1) to pcp-zeroconf
- add pcp-doc and pcp-system-tools to pcp-zeroconf dependencies
- improved and more frequent daily archive compression (see above)
- pmrep:
- pmrep: add sar -n TCP -n ETCP config
- pmrep: add units to labels in :sar-n-TCP-ETCP pmrep config
- pmrep: use standard column width by default with separate header
- pmrep: add config to display page migration stats on NUMA machines
- pmrep.conf: add initial sar -n NFS/NFSD metric sets (NFSv4 too)
- pmdaprometheus: PMDA to ingest metrics from prometheus end-points
- pmdaprometheus: start in the "notready" state, for scalable startup
- pmdaprometheus: URL config support for HTTP GET / request headers
- pmdaprometheus: URL config support for metric filters in responses
- pmdaprometheus: add prometheus.control.debug metric (storable)
- pmdapostgresql: supporting PostgreSQL v9.6 (with plans for 10.x)
- pmdapostgresql: fixes and verification to support postgresql v9.6.x
- pmdapostgresql: attempt to switch uids only if running as root
- pmdapostgresql: automatically reconnect if DB connection is lost
- pmdapostgresql: update audit script, prep for v10.3.1 support
- misc PMDAs: Linux, Proc, KVM, Pipe, rsyslog, BCC
- pmdalinux: add per-block-device capacity metrics
- pmdalinux: report CD/DVD devices correctly, not as partitions
- pmdaproc: additional kernel process states (parked, trace stopped)
- pmdarsyslog: improved diagnostics
- BCC PMDA: biotop: ignore (but log) unnamed devices
- BCC PMDA: prepare for upcoming BCC breaking API change
- pmwebd and pmmgr
- pmmgr: remove pmmgr k8s discovery code, use libpcp discovery instead
- pmwebd: support for etag headers
- pmwebd: improve graphite archive-cache performance w.r.t. syscalls
- build: house pmwebd in a subdir named consistently with rest of PCP
- Security Enhanced Linux:
- selinux: add numad_t rules
- selinux: update for variety of avc denials
- selinux: fix avc denials uncovered from pmdabcc
- selinux: add rules for pmdagluster
- libpcp and libpcp_pmda
- libpcp: fix fetchgroup vs derivedmetric instance profile issues
- libpcp: fix segv in archive help text fallback handling
- libpcp: add pmconfig reporting of transparent decompression
- libpcp: Fix false EOF return by xz_getc().
- libpcp: io: be more careful with rewind, rework __pmFseek
- libpcp: add compress_suffix_list for pmconfig -L
- libpcp: general shell discovery mechanism, Kubernetes pod support
- libpcp: pmcd: add a 'machineid' label at context level
- libpcp: add command=CMD option to shell discovery mechanism
- libpcp: handle DSO and pmcd domain labels consistently
- libpcp: correct the fetchgroup handling of counter wrap
- libpcp: rewind temp file after decompression
- libpcp: fix return codes for pmTraversePMNS
- libpcp: fix semantics of sum() for derived metrics
- libpcp: add external symbols from win32.c
- libpcp: switch pmGetConfig API to using setenv for valgrind
- libpcp: remove temp file underneath pmprintf() et al
- libpcp_pmda: add pmdaSendError(3), with python bindings
- Misc build, infrastructure and packaging updates
- Debian: enable daemons, manager enabling semantics, improved systemd
- build: test pmda.bcc group by travis ci, integrate Travis CI
- Debian packaging: make deb-systemd-helper use conditional
- Debian/pcp.postinst.tail: improved access modes for /etc/pcp/nssdb
- build: add base sans font for pmchart on headless machine
- build: add 'sds' package for more efficient string handling
- build: fix deb bash/json/mmv PMDA tmpdirs permissions
- build: add pcp-conf and pcp-libs packages for CI, needed explicitly
- build: spec updates for pcp-zeroconf and /etc/pcp/discover
- build: fix Debian install after derived metric config moved
- build: house pmwebd in a subdir named consistently with rest of PCP
- build: add proc derived metric config into pcp-libs package
- build: fix configure script qmake vs QT_RELEASE corner case
- configure: changes for Windows build, fix mingw warnings
- pmdaproc.sh: bugfix for ipc_prot="binary notready" in Install
- pmdaproc.sh: fix temp file leakage
- Documentation
- Readme.osx updated for packagemaker
- man: document the pmlogger_daily_report -l and -V options
- document the pmlogger_daily -k and -x interaction
- add pmdaSendError(3) man page to pcp-doc package
pcp-4.0.0 (16 February 2018)
- Support metric labels as first class PCP metadata
- libpcp: over-the-wire protocol support for labels
- libpcp: store metric labels in archives
- dbpmda: new commands for exercising metric labels
- pmdaproc: add proc.* and cgroup.* metric labels
- pmdalinux: add disk, CPU, NUMA node and other labels
- pmdapmcd: add pmcd.labels metric (/etc/pcp/labels)
- pmdaprometheus: add support for Prometheus labels
- pmcd: support label PDUs between clients and PMDAs
- pminfo: add new -l/--labels option
- pmlogger: support storing labels in archives
- pmdumplog: support for dumping labels in archives
- pmlogextract: support for labels in input archives
- pmlogrewrite: support for changing labels in archives
- libpcp_pmda: support for metric label PDUs
- libpcp_pmda: new pmdaLabel(3), pmdaSetLabelCallBack(3) APIs
- docs: upate pmlogger on-disk format docs for labels
- libpcp: store metric help text in archives for pmLookupText(3)
- PMAPI and PMDA API refactoring, promotion and deprecation
- libpcp: pmapi.h, impl.h, libpcp.h header refactoring
- libpcp: several impl.h data structures made internal
- libpcp: several impl.h interfaces cleaned, documented and
promoted into new PMAPI routines - e.g. pmGetProgname(3),
pmSetProgname(3), pmID_build(3), pmInDom_build(3),
pmOpenLog(3), pmGetAPIConfig(3), pmNoMem(3), pmSyslog(3),
pmNotifyErr(3), pmPrintStamp(3), pmPathSeparator(3),
pmGetUsername(3), pmSpecLocalPMDA(3).
- libpcp: hide details of pmlc/pmlogger communication
- libpcp: hide all internal PDU and PDUbuf details
- Asynchronous notification of metric name changes
- libpcp: fetch protocol support for async name changes
- pmlogger: dynamic reevaluation of metric name changes
- libpcp_pmda: support for PMDAs with dynamic name changes
- docs: describe async name change protocol on pmFetch(3)
- pmdadm: add new VDO (virtual data optimizer) metrics
- pmdabcc: new PMDA exporting BCC/eBPF trace instrumentation
- pmdaproc: fix issue with resolving ttynames below /dev
- pmdaproc: add proc.id.container metric based on cgroups
- pmdaproc: add new cgroup.*.id.container metrics
- pmdalinux: additional /proc/vmstat pgscan, pgsteal metrics
- pmdalinux: fix scanf format for /proc/net/if_inet6
- pmdalinux: tty.serial metrics use tty number as indom instance
- pmdalinux: add kernel.all.pid_max metric from /proc/sys/kernel
- pmdalinux: add wireless and name type network interface metrics
- pmdalinux: additional NUMA migration metrics from /proc/vmstat
- pmdasolaris: update for ZFS snapshot API changes
- pmdaprometheus: improvements to auto-configuration
- pmdaprometheus: metadata inference tweaks
- pmdaprometheus: rework instance-name prefixing
- pmdaprometheus: add support for scripted configuation
- pmdabash: install a default directory with secure permissions
- pmdajson: install a default directory with secure permissions
- pmdammv: install a default directory with secure permissions
- pmdalibvirt: correctly restore previously persisted indoms
- pmdahaproxy: correctly restore previously persisted indoms
- pmdadocker: document PCP_DOCKER_DIR variable
- pmrep/pcp2xxx: clarify instances reported by default
- pmrep/pcp2xxx: introduce per-metric precision support
- pmrep/pcp2xxx: multiple derived metrics specs on command line
- pmrep/pcp2xxx: properly validate config file options
- pmrep/pcp2xxx: add force scaling/formatting options
- pmrep/pcp2xxx: add live filtering support
- pmrep/pcp2xxx: add support ranking, inverse filtering, predicates
- pmrep/pcp2xxx: add support for limit filtering
- pmrep: add support for overall ranking
- pmrep: add support for dynamic headers
- pmrep: make -g/--separate-header compatible with -X/--colxrow
- pmrep: pmdumptext -X/--extended alike output
- pmrep: do not force raw values with CSV output
- pmrep: avoid repeated pmi calls in write_archive
- pmrep: better delimiter handling
- pmrep: sar-y, sar-n-SOCK, numa-hint-faults configs in pmrep.conf
- pmrep: fix archive output dir access check
- pmrep: record discrete values to archive only when changed
- pcp2json: -E/--exact-types option for increased output control
- pmjson: new helper utility for json formatting
- iostat2pcp: support yet more incompatible changes to iostat
- pmstore: add -F/--fetch option to provide accurate new value
- pmdumplog: increase precision of timestamp output
- pmdumplog: support for dumping metric help text in archives
- pmlogger: avoid multiple metadata records for same indom and timestamp
- pmlogextract: change <mark> strategy if prologue + epilogue available
- pmlogconf: ensure values present before enabling apache group
- pmlogconf: ensure values present before enabling nfsclient group
- pmlogconf: additional kernel metrics for pmlogconf
- pmlogconf: added storage group for pmlogconf with VDO metrics
- pcp-atop: add Docker support, updates to upstream atop-2.3.0 code
- pcp-atopsar: improve robustness with missing data
- pcp-mpstat: fix typo in method call found by pylint
- pcp-summary: fix incorrect use of -O/--offset/$PCP_ORIGIN
- pmchart: fix uninitialized memory use in status bar
- pmchart: several improvements to the BusyCPU script
- desktop: new icon images for pmchart and pmtime applications
- libpcp: support transparent on-demand archive decompression
- libpcp: provide -O/--offset heuristics for local archives
- libpcp: fix non-standard space units handling
- python pmconfig: handle option priorities correctly
- python pmcc: add MetricGroupManager.checkMissingMetrics
- python api: use correct tm_gmtoff type in pmMktime call
- selinux: numerous corrections to policy files
- zshrc: series of updates for latest command arguments
- zshrc: recognize .xz compressed archive file names
- zshrc: don't complete unavailable derived metrics
- bashrc: series of updates for latest command arguments
- PMDA Install: removed "monitor, server or both" prompts
- build: update debian builds to quilt-based format
- build: fix Qt5 build dependency injection
- build: fix debian binary-indep packaging
- build: fix debian python package dependencies
- build: enable systemd in debian packages
- build: configure.ac and related fixes for Solaris builds
- build: numerous Windows portability fixes
- build: remove config transition mechanism for ancient releases
- build: get python basics going in Windows cross-comiles
- build: selinux - directly test existance of semodule -X option
- build: selinux - update policy package on upgrade
- build: rpm - move to explicit python2/python3 deps
- build: rpm - python->python2 naming, obsolete python-foo packaging
- series of small code improvements found by Coverity
- series of small code improvements found by cppcheck
- docs: start documenting long options on PCPIntro(1) and others
- docs: add some power user examples to pmrep(1)
pcp-3.12.2 (18 October 2017)
- dm pmda: fix memory corruption from a double free
- linux pmda: add mem.vmstat.pgsteal_* metrics
- haproxy pmda: warn, not error, on missing socket
- haproxy pmda: add url connection support
- libvirt pmda: more resiliency for missing domains with mem stats
- perfevent pmda: fix missing dynamic events scenario
- prometheus pmda: metadata generator handles empty lines and comments
- prometheus pmda: add _sum, _count and _bucket as metric instances
- selinux: add pmlogger_exec_t rule from rhbz1483320
- selinux: remove base pcp requirement for pcp-selinux subrpm
- selinux: update configure checks to work with selinux tools v4.0+
- selinux: RHBZ1447585 pmlc accessing tcp port 4330
- selinux: rhbz1488116 pmnewlog.sh using ps to check pid's for pmloggers
- pcp-atop: add --hotproc option for using hotproc metrics
- pcp2elasticsearch: new utility exporting metrics to ElasticSearch
- pcp2json: new utility exporting metrics in JSON format
- pcp2xlsx: new utility exporting metrics in Excel spreadsheets
- pcp2xml: new utility exporting metrics in XML format
- pcp2zabbix: new utility exporting metrics to Zabbix
- pmchart: make the BusyCPU view work and install it
- pmchart: fix a use-after-free in setSamples
- pmchart: support hicolor icons for GUI apps
- pmlogconf: cull missing groups with -c
- pmlogconf: automatically configure hotproc logging
- pmlogconf: tweak hotproc config and add the atop metrics
- pmlogger: add prologue / epoligue support
- pmmgr: pass -H hostid to pmlogger
- pmrep: add support for new derived metrics syntax
- pmrep: rewrite csv output code
- pmrep: rewrite stdout output code
- pmrep: better metric scaling precision
- pmrep: tweak csv header
- pmrep: allow scaling of raw metrics
- pmrep: better metric type detection
- pmrep: handle dup names
- pmrep: drop zabbix support, added to pcp2zabbix(1)
- pmrep: use the new pmConfig module and the new Python helpers
- pmrep: add daemonization support
- pmrep: use UTC offsets in extended header
- pmrep: protect against transient instances
- pmrep: support sadf(1) compatible CSV output
- pmrep: improve handling of floating point NaN values
- pmview: changes to allow building with either Qt4 or Qt5
- pmwebd adapt graphite font size to image size
- libpcp_web: increase default JSON parser token count
- libpcp: refactor daemonization code for sharing
- libpcp: changes to satisfy reported cppcheck issues
- libpcp: initialise unaligned part of help text buffer
- libpcp: harden interpolate mode up against corrupt archives
- perl api: support indom cache reloading for hash indoms
- python api: handle unicode strings in python2 module as well
- python api: add a pmconfig module and new timezone helper routines
- python api: fix timezone segfault from incorrect free
- python api: timezone helper with non full hours
- python api: fixes to timezone handling
- python api: add daemonize option using libpcp services
- python api: allow long options without a short option
- python api: automatic indom persistence of dict indoms
- python api: annotate the pmsubsys module as "deprecated"
- libpcp: add simple, secure system(2) replacement API
- libpcp: add simple, secure pipe API replacement
- libpcp: derived metric configuration for kernel.cpu.util.*
- libpcp et al: change PCP debugging control infrastructure
- libpcp: add PM_ERR_BADDERIVE code for invalid derived metric specs.
- libpcp: defered derived metrics evaluation performance improvement
- libpcp_web: cleanup memory leaks
- libpcp: add $PCP_IGNORE_MARK_RECORDS support
- libpcp: pmsprintf - a safer [v]snprintf wrapper
- pmcd, pmcd PMDA, libpcp_pmcd: add pmcd.pid and pmcd.seqnum
- pmdaproc.sh: improve domain number and name match checks
- bashrc: fix completions using symlink for all commands
- bashrc: updates for auto-completions for all commands
- zshrc: updates for auto-completions for all commands
- build: update debian builds to default to Qt5 when available
- build: fix numerous compiler warnings on FreeBSD
- build: fix numerous compiler warnings on Windows
- build: switch to Qt5 when building on Windows
- demos: fix pmclient, pmclient_fg archive modes
- docs: add notes to pmdapostgresql(1) re enabling stats
- docs: corrections to pmdadm(1), histogram support
- docs: document $PCP_IGNORE_MARK_RECORDS in pcpintro(1)
pcp-3.12.1 (16 August 2017)
- pmdadm: device mapper stats API (statistics regions) metrics
- pmdahaproxy: new PMDA exporting HAProxy (haproxy.org) metrics
- pmdaperfevent: fix use after free in perf_setup_dynamic_events
- pmdaprometheus: add pmda config metrics and store callback
- pmdaprometheus: periodic metadata refresh of Prometheus endpoints
- pmdaprometheus: auto refresh and reload metadata changes
- pmdaprometheus: reload only added/removed sources on fetch
- pmdaprometheus: add units parsing and fix minor bugs
- pmdaprometheus: fix metadata generator for instances with whitespace
- pmdadarwin: instance domain help text added
- pmdalinux: add nfsd worker thread status values
- pmdanews: fixes to ps(1) command invocation on FreeBSD
- pmdaroot: defensive behaviour for containers lacking a Name
- pmrep: add per process metricsets to default pmrep.conf(5)
- pmrep: exit in check mode after all preparations
- pmie: modified back-off when metrics or hosts unavailable
- pmwebd: add Prometheus metrics exporter endpoint
- pcp-mpstat: gracefully handle the absence of interrupt metrics
- selinux: additional SELinux policy rules for several PMDAs
- libpcp: fix detection of unterminated string in derived metrics
- libpcp: fix ternary expression evaulation bug
- libpcp: tracing facility for PMAPI routine entry/exit
- libpcp: initial file I/O abstraction layer
- libpcp: further multi-threading improvements
- libpcp: only consider addresses with type SOCK_STREAM
- perl api: fixes for PMDA wrapper on FreeBSD
- python api: add refresh_all clusters method for PMDAs
- python api: add the remove_metric function for PMDAs
- build: add perl deps and perl-interpreter into RPM spec files
- build: add log import library pkg-config support
- build: add configury for python OrderedDict module
- build: add missing Debian autopkgtests and debian/watch file
- build: update with RPM systemd macros for service defaults
- build: change RPM location of local mode to %install, f27 onwards
pcp-3.12.0 (30 June 2017)
- pmdaprometheus: new PMDA exporting Prometheus end point metrics
- pmdalinux: deprecate some socket stats, add IPv6 socket stats
- pmdalinux: change some string metrics from instant to discrete
- pmdamysql: additional MySQL slave metrics
- pmdaproc: migrate proc.psinfo.{vsize,rss,rss_lim} to U64
- pmdacifs: drop duplicate makefile installs
- pmdasummary: default to localhost for pmie pmcd connections
- containers: allow clearing a previously set container context
- python api: handle duplicate metric name in PMDA module correctly
- python api: clear the _metric_names_map at appropriate times
- perl api: fix instance domain help text handling for PMDAs
- pcp-pidstat: configurable timestamp formatting (-f option)
- pcp-pidstat: fix traceback at end of archive with -G option
- pcp-numastat: use pmFetchArchive when replaying an archive
- pcp-numastat: fix poor handling of non-tty output
- pcp-atop: fix sigsegv while handling NFS mounts metrics
- pcp-atop: fix rawwriting and bad -T option passed to pmlogger
- pmlogger: allow hostname to be over-ridden on the command line
- pmlogconf: group pmprobe calls together, performance optimisations
- pmlogconf: add proc.psinfo.guest_time to atop-proc for pcp-pidstat
- pmlogconf: add numastat, pidstat and tapestat to zeroconf config
- pmlogconf: add config for pcp-tapestat
- pmlogconf: improve probe used for some optional log configs
- pmieconf: add pmie rule detecting entropy starvation
- pmrep: improve corner case metric name duplicate detection
- pmwebd: add mandatory authentication mode (-C option)
- libpcp: changes to remove client-pmcd socket multiplexing
- libpcp: rework earlier changes to context handle semantics
- libpcp: fix double-close on __pmConnectTo failure
- libpcp: further locking improvements
- libpcp: add buffer length check to pmEventFlagStr_r(3)
- pmprobe: add -F option for further pmlogconf speedups
- pmprobe: fix sigsegv in the presense of bad metric descriptors
- pmlogger rc scripts: small changes cleaning up reports of warnings
- pmie rc scripts: small changes cleaning up reports of warnings
- selinux: policy updates to resolve a pmdabash issue
- selinux: add check for cap_userns class
- bashrc: bash completion updates
- zshrc: zsh completion updates
- build: pkg-config support for libpcp and libpcp_pmda
- build: change how selinux contexts are detected
- build: resolve problems with use of autoreconf
- build: exclude pcp-zeroconf files from base package
- build: take more control over perfevent rpm package builds