[Nagiosplug-devel] RFC: Performance data guidelines
Hoogendijk, Peter
Peter.Hoogendijk at atosorigin.com
Mon Jul 21 01:01:18 CEST 2003
Karl,
You are right, I can include the label with the -P option:
./check_perfmon -f /var/log/perfmon/hostname \
-C "\System\System Up Time" -S "%l" \
-P "SystemUpTime=%ls"
The available options for the perfmon plugin are now:
-f filename (--filename)
-C counter (--counter)
-S scanf (--scanf)
-P printf (--printf)
-w warning threshold (--warning)
-c critical threshold (--critical)
Kjell is sceptical to the proposal of using the scanf/printf format
specifiers, but I need some mechanism to specify the formats!
For the input part, the alternative is using a regular expression, but
as I'm writing the plugin in C, the scanf format specifier is the
easiest to implement, so I'll stick to that format for the moment.
Peter.
-----Original Message-----
From: Karl DeBisschop [mailto:karl at debisschop.net]
Sent: woensdag 16 juli 2003 13:22
To: Hoogendijk, Peter
Cc: Voon, Ton; NagiosPlug Devel
Subject: RE: [Nagiosplug-devel] RFC: Performance data guidelines
On Wed, 2003-07-16 at 03:28, Hoogendijk, Peter wrote:
> Ton,
>
> This certainly makes sense. I was thinking along the same lines and
> concluded that I need two extra (optional) plugin options:
>
> 1) An option to set the label: -L label (--label)
> 2) An option to to specify the format of the data: -P printf
> (--printf)
>
> This solves the problem of the RRD labels. It also proves you are
> right with your proposal to do the translations at the plugin, as this
> is also the place where I have to configure the perfmon counter to be
> checked (for this discussion I'll stick to the Microsoft Windows
> Perfmon example). As a result, the perfmon plugin would take the
> following
> options:
>
> -f filename (--filename)
> -C counter (--counter)
> -S scanf (--scanf)
> -L label (--label)
> -P printf (--printf)
> -w warning threshold (--warning)
> -c critical threshold (--critical)
>
> The resulting command to perform the check would be:
>
> ./check_perfmon -f /var/log/perfmon/hostname -C "\System\System Up
> Time" -S "%l" -L "SystemUpTime" -P "%ls"
>
> The filename, as specified with the -f option, points to the file that
> contains a list of Microsoft Windows Perfmon counters and their values
> for the host being checked. This file is generated using a third-party
> product, running as a service on the Microsoft Windows servers.
>
> The option names I used are open to discussion, but the principle at
> solves the problems being discussed. It also leaves the format of the
> perfdata free to be adapted to the program that will process this
> data.
Why not:
./check_perfmon -f /var/log/perfmon/hostname \
-C "\System\System Up Time" -S "%l" \
-P "SystemUpTime=%ls"
Since you are providing a printf format, you really don't need to
separately specify the label AFAICS.
> how do I specify a warning below 10 and a critical above 45 ?
Most (all?) plugins will balk at this. For instance, you can warn
outside the range 10-25 and send a critcal response outside the range
0-25, which would be similar. But in general the plugins should and do
check to make sure that the values that generate critical condtions are
a subset of the warning specification, possibly inclusive.
But there is the problem of passing ranges out through the perf data. In
most cases, it's a single value - but for some plugins the "good" zone
may be above the threshold, and for others below. For ranges, unless
RRDtool or others have a native syntax for specifying ranges, I would
this we just pass ours our - the good range is within a colon-separated
pair.
> but what do I do with a signed counter value, when
> I don't know the possible minimum and maximum values?
ISTM that if he possible minimum/maximum values are not known, a well
behaved application would not require that they be specified.
--
Karl
More information about the Devel
mailing list