Changes committed to git://git.pcp.io/pcp.git master
Frank Ch. Eigler (7):
pmwebd: add a "-i MIN-INTERVAL" option for graphite time-precision control
pmwebd: fix little memory leak for fts() during interrupted rendering
pmwebd: handle exit_p requested during graphite data-mass gathering
pmwebd crasher fix: png-rendered multiple graphs with corrupt archives
PR1099 (compressed archive) mitigation in pmwebd: skip them in graphite
mode
pmwebd graphite-png rendering: tweak graphics
pmwebd: add -I option for opening directories-as-archives for graphite
Martins Innus (6):
hotproc - support disabling via pmstore
hotproc - update qa for recent config changes
hotproc - disallow hotproc.conf with global write mode
hotproc - Allow config file reload
hotproc - update the pmdaproc manpage with hotproc information
hotproc - add a new error code for malformed pmstore input
Nathan Scott (2):
Revert "hotproc - add a new error code for malformed pmstore input" for
now
docs: update pmdaproc.1 man page a little, drop pmdahotproc.1
Marko Myllynen (1):
docs: describe hotproc in the quick reference guide
man/html/guide.html | 50 -
man/man1/pmwebd.1 | 20
man/man3/pmwebapi.3 | 4
qa/006.out | 4
qa/661 | 34
qa/661.out | 1311 ++++++++++++++++++++++++++++-
qa/982 | 5
qa/982.out | 10
qa/archives/archive-20150417.131733.0 |binary
qa/archives/archive-20150417.131733.index |binary
qa/archives/archive-20150417.131733.meta |binary
qa/archives/archive-goodred-20150417.0 |binary
qa/archives/archive-goodred-20150417.index |binary
qa/archives/archive-goodred-20150417.meta |binary
src/include/pcp/pmapi.h | 2
src/libpcp/src/err.c | 4
src/pmdas/linux_proc/config.c | 30
src/pmdas/linux_proc/error.c | 6
src/pmdas/linux_proc/gram.y | 12
src/pmdas/linux_proc/hotproc.c | 2
src/pmdas/linux_proc/hotproc.h | 1
src/pmdas/linux_proc/lex.l | 8
src/pmdas/linux_proc/pmda.c | 27
src/pmdas/linux_proc/pmdahotproc.1 | 187 ----
src/pmdas/linux_proc/pmdaproc.1 | 230 ++++-
src/pmdas/linux_proc/proc_pid.c | 23
src/pmdas/linux_proc/proc_pid.h | 12
src/pmdas/linux_proc/root_proc | 1
src/pmwebapi/main.cxx | 31
src/pmwebapi/pmgraphite.cxx | 149 ++-
src/pmwebapi/pmwebapi.h | 5
src/pmwebapi/pmwebd.options | 5
32 files changed, 1794 insertions(+), 379 deletions(-)
Details ...
commit 613f296cfd915cb119fb57ad287730f2d9967c28
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Thu Apr 30 12:17:02 2015 +1000
docs: update pmdaproc.1 man page a little, drop pmdahotproc.1
commit 4803ede912410cc6bd4e8ddb995e6b74fb392bd1
Author: Marko Myllynen <myllynen@xxxxxxxxxx>
Date: Thu Apr 30 11:47:05 2015 +1000
docs: describe hotproc in the quick reference guide
commit 2cb86d5135876ec2eb721c9fb78a60636d472a97
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Thu Apr 30 10:19:13 2015 +1000
Revert "hotproc - add a new error code for malformed pmstore input" for now
This reverts commit 4cef14619b682c91f982b103e4751416e354e3d1.
commit 4cef14619b682c91f982b103e4751416e354e3d1
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 18:46:09 2015 +0000
hotproc - add a new error code for malformed pmstore input
commit e20343ea9ae4dc228d3250a9019c08fb60ddbffc
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 17:39:03 2015 +0000
hotproc - update the pmdaproc manpage with hotproc information
commit 6dcab33eed485c0f534c7b52700664b82520b250
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 17:29:30 2015 +0000
hotproc - Allow config file reload
By using: pmstore hotproc.control.reload_config "1"
the config file can be forced to be reloaded.
Also cleaned up some duplicated code.
commit a00be8d350ab4eac1ce900dcbf2e737a0d79e4a3
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 16:46:57 2015 +0000
hotproc - disallow hotproc.conf with global write mode
commit c61371d39aec7e4d3df3d4bf03ba5d1879bf3b44
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 16:32:55 2015 +0000
hotproc - update qa for recent config changes
Test hotproc disable and bad input
commit 288421ef56a8402aab0a2f0e7d033720443ed7dd
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date: Wed Apr 29 15:30:04 2015 +0000
hotproc - support disabling via pmstore
Support: pmstore hotproc.control.config ""
to disable hotproc.
Also, some comments and other cleanups
commit 53d34c3d7102043b66dd337a8a8fe89cd55b3518
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Thu Apr 23 18:34:00 2015 -0400
pmwebd: add -I option for opening directories-as-archives for graphite
This facility allows pmwebd to present to graphite-api clients such as
the graphite and grafana webapps a more compact metric-name for the
canonical sort of pmlogger directory layout, wherein each directory
that contains archives are all from the same host. The moment
pmNewContext (PM_CONTEXT_ARCHIVE, "/path/to/directory") facility
comes online, this option will let pmwebd exploit it.
The effect will be to go from having a gajillion:
[...]
pmmgr-2F-easy-2E-elastic-2E-org-2F-archive-2D-20150131-2E-110904-2E-meta.kernel.all.nprocs
pmmgr-2F-easy-2E-elastic-2E-org-2F-archive-2D-20150131-2E-110904-2E-meta.kernel.all.nprocs
pmmgr-2F-easy-2E-elastic-2E-org-2F-archive-2D-20150131-2E-110904-2E-meta.kernel.all.nprocs
pmmgr-2F-easy-2E-elastic-2E-org-2F-archive-2D-20150201-2E-110705-2E-meta.kernel.all.nprocs
[...]
items to a single:
pmmgr-2F-easy-2E-elastic-2E-org.kernel.all.nprocs
Documentation is included. Hand-QA'd via gdb (to check that
pmNewContext was being properly called on directories too). The code
is harmless to current libpcp users, even if the non-default -I flag
were turned on; updated QA asserts this. (qa/661.out may vary once
the new pmNewContext facility comes online.)
commit a0039e8dbd2f6ed6ba3964c06a270fec05fd084b
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Tue Apr 21 21:16:01 2015 -0400
pmwebd graphite-png rendering: tweak graphics
Make the rendered legend-text normal rather than too-wide,
and reduce the maximum fraction of the legend (50% to 40%
of the vertical space). It looks a little nicer in the
grafana default-png.json dashboard.
commit 738ccc07e942d295ec516814e7b52f9c910555d8
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Tue Apr 21 18:12:59 2015 -0400
PR1099 (compressed archive) mitigation in pmwebd: skip them in graphite mode
As per PR1099, pmwebd graphite mode searches deeply conflict with
compressed mode archives, because these cost a lot of time to
individually decompress (and perhaps many times repeatedly). A new
heuristic in pmgraphite_enumerate_metrics() rejects them. QA
included (+ regenerated qa/661.out).
commit d6ce75729a11a445f1a56091c604a5ca4eee7f41
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Tue Apr 21 10:35:21 2015 -0400
pmwebd crasher fix: png-rendered multiple graphs with corrupt archives
It was discovered that if pmwebd (in graphite, render-to-png mode) was
told to draw a mixture of archives, some of which were corrupt enough
to fail pmGetArchiveEnd(), it could crash during the time-series
importance-analysis stage. We now protect against that particular
case, and improve diagnostics for that and others. QA included
using two new pcpqa archives, one featuring 100% Genuine Corruption.
commit fc0ceb354723195f9f0cf0cc970449ad5a189845
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Sun Mar 8 16:43:37 2015 -0400
pmwebd: handle exit_p requested during graphite data-mass gathering
If we receive a SIGINT during pmgraphite_fetch_all_series, it will
return early, but perhaps without all the correct geometry in the
vector<STUFF> it returns. The caller pmgraphite_respond_render_gfx
now checks for exit_p right after that call, so a badly-timed SIGINT
doesn't trigger later geometry-assertions.
commit d7a4de3009c2958ff2dfb74ad0ce4757d0a8dec2
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Mon Mar 2 13:35:02 2015 -0500
pmwebd: fix little memory leak for fts() during interrupted rendering
The metric-enumeration loop using fts(3) could formerly exit without a
fts_close() in case of a top-level ^C (exit_p shutdown). It's an
insignificant leak, but what the heck.
commit 6b2eb46b3eba9dacba86009bfc4ccebd198e7b79
Author: Frank Ch. Eigler <fche@xxxxxxxxxx>
Date: Sat Feb 28 09:35:09 2015 -0500
pmwebd: add a "-i MIN-INTERVAL" option for graphite time-precision control
When pmlogger data is sampled more frequently than /60s, it is
desirable to let graphite render data at a higher time resolution.
Oversampling leads to wiggles due to interpolation FP artifacts, so is
undesirable. The pmwebd invoker is best placed to judge the right
tradeoff, so is given an option to set the minimum time-step size.
|