pcp
[Top] [All Lists]

Re: Archive pmLookupDesc errors (global derived metrics induced)

To: Nathan Scott <nathans@xxxxxxxxxx>
Subject: Re: Archive pmLookupDesc errors (global derived metrics induced)
From: Mark Goodwin <mgoodwin@xxxxxxxxxx>
Date: Wed, 20 Apr 2016 14:10:03 +1000
Cc: pcp developers <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <523501625.42032893.1461122796378.JavaMail.zimbra@xxxxxxxxxx>
References: <523501625.42032893.1461122796378.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1
On 04/20/2016 01:26 PM, Nathan Scott wrote:
Hi Mark,

Not sure if you've come across this side-effect, but any archive with
no metrics backing the disk.* derived metrics generates errors now on
use of namespace-expanded metric names.

e.g. pminfo -f -a qa/archives/rattle

This seems like something that's probably going to cause heartache and
confusion for users.  The error messages are fairly cryptic too ...
"disk.dev.await: pmLookupDesc: Metric not defined in the PCP archive log"

We probably need to find a way to suppress these errors for archives?
(since there is no actual error here)

hmm, the root cause seems to be that derived metrics are always defined
in the namespace, even if their operand metrics are not present in the
archive, as below. It looks like event.flags and event.missed sort of
similarly exhibit this issue too - they're both globally derived metrics
defined by a call to __pmRegisterAnon() from __dminit() in libpcp.

This is what's really in the archive :

$ PCP_DERIVED_CONFIG="" pminfo -a qa/archives/rattle
irix.kernel.all.load
hinv.ncpu
hinv.ndisk
pmcd.pmlogger.archive
pmcd.pmlogger.port
pmcd.pmlogger.host
event.flags
event.missed

The global derived metrics should be omitted from the pmns somehow I guess,
or maybe only defined if all their operands are present?

$ pminfo -a qa/archives/rattle
irix.kernel.all.load
hinv.ncpu
hinv.ndisk
pmcd.pmlogger.archive
pmcd.pmlogger.port
pmcd.pmlogger.host
event.flags
event.missed
disk.dev.await
disk.dev.r_await
disk.dev.w_await
disk.dev.avg_qlen
disk.dev.avg_rqsz
disk.dev.util
disk.dm.await
disk.dm.r_await
disk.dm.w_await
disk.dm.avg_qlen
disk.dm.avg_rqsz
disk.dm.util
disk.md.await
disk.md.r_await
disk.md.w_await
disk.md.avg_qlen
disk.md.avg_rqsz
disk.md.util


<Prev in Thread] Current Thread [Next in Thread>