[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