Hi, BEWARE: this patch has been tested on a machine with rrdtool 1.0.x. The values/behavior for rrdtool 1.2.x were taken from the online rrd documentation so they are hopefully correct. If someone was able to test it for me on a server with rrdtool 1.2, I would be very grateful! Cheers, Gildas -- The following patch add support for a @STACKIT@ keyword in the graph definitions in hobbitgraph.cfg, allowing data to be stacked. The STACK behavior changed between rrdtool 1.0.x and 1.2.x, hence the ifdef: - in 1.0.x, you replace the graph type (AREA|LINE) for the graph you want to stack with the STACK keyword - in 1.2.x, you add the STACK keyword at the end of the definition Please note that in both cases the first entry mustn't contain the keyword STACK at all, so we need a different treatment for the first rrdidx examples of valid hobbitgraph.cfg entries: rrdtool 1.0.x [la-multi] TITLE Multi-host CPU Load YAXIS Load FNPATTERN la.rrd DEF:avg at RRDIDX@=@RRDFN@:la:AVERAGE CDEF:la at RRDIDX@=avg at RRDIDX@,100,/ @STACKIT@:la at RRDIDX@#@COLOR@:@RRDPARAM@ -u 1.0 GPRINT:la at RRDIDX@:LAST: \: %5.1lf (cur) GPRINT:la at RRDIDX@:MAX: \: %5.1lf (max) GPRINT:la at RRDIDX@:MIN: \: %5.1lf (min) GPRINT:la at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n rrdtool 1.2.x [la-multi] TITLE Multi-host CPU Load YAXIS Load FNPATTERN la.rrd DEF:avg at RRDIDX@=@RRDFN@:la:AVERAGE CDEF:la at RRDIDX@=avg at RRDIDX@,100,/ AREA:la at RRDIDX@#@COLOR@:@RRDPARAM@:@STACKIT@ -u 1.0 GPRINT:la at RRDIDX@:LAST: \: %5.1lf (cur) GPRINT:la at RRDIDX@:MAX: \: %5.1lf (max) GPRINT:la at RRDIDX@:MIN: \: %5.1lf (min) GPRINT:la at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n --- hobbit-4.2.0/web/hobbitgraph.c 2006-08-09 21:10:13.000000000 +0100 +++ hobbit-4.2.0.ganglia/web/hobbitgraph.c 2006-10-12 10:24:09.788773551 +0100 @@ -392,6 +392,42 @@ } inp += 10; } + else if (strncmp(inp, "@STACKIT@", 9) == 0) { + /* the STACK behavior changed between rrdtool 1.0.x + * and 1.2.x, hence the ifdef: + * - in 1.0.x, you replace the graph type (AREA|LINE) + * for the graph you want to stack with the STACK + * keyword + * - in 1.2.x, you add the STACK keyword at the end + * of the definition + * + * Please note that in both cases the first entry + * mustn't contain the keyword STACK at all, so + * we need a different treatment for the first rrdidx + * + * examples of hobbitgraph.cfg entries: + * + * - rrdtool 1.0.x + * @STACKIT@:la at RRDIDX@#@COLOR@:@RRDPARAM@ + * + * - rrdtool 1.2.x + * AREA::la at RRDIDX@#@COLOR@:@RRDPARAM@:@STACKIT@ + */ + char numstr[10]; + if (rrdidx == 0) { +#ifdef RRDTOOL12 + sprintf(numstr, ""); +#else + sprintf(numstr, "AREA"); +#endif + } + else { + sprintf(numstr, "STACK"); + } + strcpy(outp, numstr); + outp += strlen(outp); + inp += 9; + } else if (strncmp(inp, "@RRDIDX@", 8) == 0) { char numstr[10];