On Mon, Aug 11, 2008 at 8:53 AM, Bill Richardson <user-47ee0335f310@xymon.invalid>wrote:
I have looked high and low for a way to change how custom rrd's are
created in hobbit.
I have created a custom script to graph and have 2 problems that I would
like to figure out.
1.) I would like to change the step from 300 secs to 60 secs in the rrd's
and run the script ever 60 secs instead of 300 secs. "The default rrd
behavior is set to 300 secs"
2.) I would like to get the true values not average. The problem is I
have data that I want to graph that can range from 0 to 5 "thats 0, 1, 2,
3, 4 or 5" and the graph shows average so my graphs come out with numbers
like 6m "6 milli" for a true value of 2 and so on. The problem is the
data will sit a 0 for an hour or more and then go to 1 or 2 for just one
sample. Average is not the right choice and I cant get the true figures I 'm
looking for.
Seems like the way to do this is in the hobbitserver.cfg. I added the
following to the hobbitserver.cfg
NCV_testgraph="test1total:GAUGE,test2total:GAUGE,test3total:GAUGE"
What other values can you pass to rrd other than GAUGE? Can I set a step
to say 60 instead or 300 and can I change the default behavior of AVERAGE to
something else that may work for my above example? The rrd docs are not
clear on this.
Early on I was thinking that maybe I could fix the AVERAGE problem with a
change to the hobbitgraph.cfg but this is what I found:
The hobbitgraph.cfg does not have any effect on how rrd file is created. I
deleted the testgraph.rrd made the changes to hobbitgraph.cfg and no go.
You cant see the graphs if you use anything but AVERAGE after changing the
hobbitgraph.cfg. It looks like the *.rrd's are created by default "AVERAGE"
and you just edit the hobbitgraph.cfg to view whats already built. I need to
figure out how to change the way the rrd's are built and its not thru
the hobbitgraph.cfg.
If you're comfortable about fooling with the source, there are a couple of
places where you can make changes to achieve what you want:
hobbit-4.2.0/hobbitd/do_rrd.c contains these definitions:
static char rra1[] = "RRA:AVERAGE:0.5:1:576";
static char rra2[] = "RRA:AVERAGE:0.5:6:576";
static char rra3[] = "RRA:AVERAGE:0.5:24:576";
static char rra4[] = "RRA:AVERAGE:0.5:288:576";
BUT - if you change those, I think *every* new rrd created by Hobbit would
pick up the same changes.
do_rrd.c also includes a bunch of test-specific files, one of which is
hobbitd/rrd/do_ncv.c. That contains the code that examines NCV_xxx and sets
up DS entries to match.:
sprintf(dsdef, "DS:%s:%s:600:0:U", dsname, dstype);
or
sprintf(dsdef, "DS:%s:DERIVE:600:0:U", dsname);
A bit further down it copies in the above rra1 - rra4 definitions. So, you
could change the hardwired DS and RRA values in do_ncv.c, but ONLY if you
don't have any other NCV that would need to be different...
Another way to get towards what you want would be to hand-create the rrd.
Hobbit won't overwrite an existing rrd. I think the rrdcreate would look
something like this:
rrdtool create testgraph \
DS:test1total:GAUGE:60:0:U \
DS:test2total:GAUGE:60:0:U \
DS:test3total:GAUGE:60:0:U \
RRA:AVERAGE:0.5:1:576 \
RRA:AVERAGE:0.5:6:576 \
RRA:AVERAGE:0.5:24:576 \
RRA:AVERAGE:0.5:288:576
I haven't tried this myself, but I think Hobbit would be able to do updates
correctly.
Ralph Mitchell