[Nagiosplug-devel] RFC: supporting ranges in *perfdata()

Sebastian Harl tokkee at debian.org
Fri Apr 1 16:04:31 CEST 2011


Hi there,

currently, the *perfdata() formatting functions in plugins/utils.c do
not support anything but a single integer value for warning and critical
values. However, according to the plug-in development guidelines,
section 2.6 [1], the warn and crit fields are supposed to support the
range format (as specified in section 2.5).

Are there any plans and/or work going on to add support for ranges?

Else, I'd propose to introduce a new function called 'np_strfperfdata'
to be added to libnagiosplug using the following signature:

  char *np_strfperfdata(const char *label,
        long int val, const char *uom,
        thresholds *thres,
        int minp, long int minv,
        int maxp, long int maxv);

… and the same for floating point values (called 'np_strfperfdataf').

I would have preferred to avoid introducing two functions for that
purpose. However, I could only think of two ways to get there (and I
don't really like either of them):

 * Introduce a union like

   union np_value {
       long int integer;
       double   floating;
   }

   … and an enum np_value_type { TYPE_NONE, TYPE_INT, TYPE_FLOAT } to be
   used as argument types:

   char *np_strfperfdata(const char *label,
         enum np_value_type type, union np_value val, const char *uom,
         thresholds *thres,
         enum np_value_type min_type, union np_value min,
         enum np_value_type max_type, union np_value max);

 * Use variable argument lists and a format string describing the
   arguments:

   char *np_strfperfdata(const char *label, const char *fmt, ...)

   'fmt' would support the following conversion specifications to be
   applied to the variable arguments:

   - %Vi, %Vf: integer / floating value
   - %T: threshold
   - %mi, %mf: integer / floating min
   - %Mi, %Mf: integer / floating max

Both approaches would be rather ugly, though ;-)

Any comments, suggestions would be appreciated.

TIA,
Sebastian

[1] <http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN201>

-- 
Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/

Those who would give up Essential Liberty to purchase a little Temporary
Safety, deserve neither Liberty nor Safety.         -- Benjamin Franklin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://nagios-plugins.org/archive/devel/attachments/20110401/b583abda/attachment.sig>


More information about the Devel mailing list