[Nagiosplug-devel] RFC: Performance data guidelines

Karl DeBisschop karl at debisschop.net
Wed Jul 16 04:24:26 CEST 2003

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

> 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.


More information about the Devel mailing list