[Nagiosplug-devel] Suggested alterations to the Performance Protocol

Yves Mettier ymettier at libertysurf.fr
Thu Sep 9 02:21:03 CEST 2004

> The only comment I have, apart from my desire to still use NULL, is that
> if we include time as UNIX time, we can't use float as the underlying
> data storage mechanism:
> Time:           1094718313
> Time -> Float:  1094718336.000000
> Float -> Time:  1094718336
> Time -> Double: 1094718313.000000
> Double -> Time: 1094718313
> Both PP and RRD will have to use double.  (I don't know what RRD
> currently uses.)


> Or is this is just too nasty, we will have to use double and double the
> size of our storage :)

Too nasty :)

The problem is not how we will code that. Perfparse will use double. RRD will use what
they like (they can also use strings, or better: struct timeval).

The problem is, for the parser, to identify what kind of data it reads. And we have the
unit for that.

For that reason, I'm noticing that a parser should not return some double or any other
type for the value, but a string. The program that uses the parser can then convert the
string to whatever :

if(perf_value_next(data,&result)) {
  if(strcmp(result.unit,"s")) {
    /* result.value is time and should be converted to struct timeval */
  } else {
    /* result.value is anything and we can try to convert it to double */

perf_value_next() is the new parser for data perf for Perfparse. I have in mind to make
it extractable, in order to make an external library one day. A generic library to parse
perf data strings :)
For now, just wait, this is far from being finished, and it will first be part of
perfparse for debugging purpose and user-friendlyness for our users.

- Homepage    - http://ymettier.free.fr - http://www.logicacmg.com -
- GPG key     - http://ymettier.free.fr/gpg.txt                    -
- Maitretarot - http://www.nongnu.org/maitretarot/                 -
- GTKtalog    - http://www.nongnu.org/gtktalog/                    -

More information about the Devel mailing list