Stack Graphs with SPLITNCV data
Hi all
Has anybody managed to create a stack graph with SPLITNCV data? How do we configure it?
Once upon a time, I authored this http://www.xymonton.org/monitors:memstat But it had graphing problems if you didn't have ZFS running. (One field less than the RRD graph config required.) In the ToDo section, I promised to have a look at using SPLITNCV. So I am looking into it now, but struggling. To do a STACK graph, the first entry has to be AREA, and the rest need to be STACK. Configuring the RRD graph with SPLITNCV, applies the same graph type to each data set. How do we get the first to be AREA, and the rest STACK?
Any assistance appreciated.
Regards and a happy new year to you all Vernon
-- "Accept the challenges so that you can feel the exhilaration of victory"
- General George Patton
On Mon, 31 Dec 2012 10:43:44 +0800, Vernon Everett <everett.vernon at gmail.com> wrote:
Hi all
Has anybody managed to create a stack graph with SPLITNCV data? How do we configure it?
Once upon a time, I authored this http://www.xymonton.org/monitors:memstat But it had graphing problems if you didn't have ZFS running. (One field less than the RRD graph config required.) In the ToDo section, I promised to have a look at using SPLITNCV. So I am looking into it now, but struggling. To do a STACK graph, the first entry has to be AREA, and the rest need to be STACK. Configuring the RRD graph with SPLITNCV, applies the same graph type to each data set. How do we get the first to be AREA, and the rest STACK?
I don't understand with "SPLITNCV applies the same graph type to each dataset".
With SPLITNCV you have multiple rrd files, each of these hold one data item and you define in the SPLITNCV setting what RRD datatype they are - essentialy GAUGE or COUNTER. E.g. SPLITNCV_foo="ds1:COUNTER,ds2:GAUGE"
In the graph definition, you just refer to the specific RRD-file you want to pull data from. This has no relation to the data being a GAUGE or a COUNTER. So the graphs.cfg definition is straight-forward:
[foo] DEF:foo1=foo,ds1.rrd:lambda:AVERAGE DEF:foo2=foo,ds2.rrd:lambda:AVERAGE AREA:foo1#FF0000:foo 1 data STACK:foo2#0000FF:foo 2 data
Regards, Henrik
Hi Henrik
Happy New Year!
Maybe I didn't express myself correctly. I understand what you say below, and the problem isn't with SPLITNCV, but rather with configuring the graphs.
As you say below, we can do foo1 as AREA, and all the rest of foo2...fooX as STACK. But how do do this if X is an unknown number? The config example below will work for an unknown number of rrd data files if we are going to make each data set a LINE2 FNPATTERN ^disk(.*).rrd TITLE Disk Utilization YAXIS % Full DEF:p at RRDIDX@=@RRDFN@:pct:AVERAGE LINE2:p at RRDIDX@#@COLOR@:@RRDPARAM@ But how do we create a stack graph with unknown number of data sets?
Regards Vernon
On 2 January 2013 20:11, <henrik at hswn.dk> wrote:
On Mon, 31 Dec 2012 10:43:44 +0800, Vernon Everett <everett.vernon at gmail.com> wrote:
Hi all
Has anybody managed to create a stack graph with SPLITNCV data? How do we configure it?
Once upon a time, I authored this http://www.xymonton.org/monitors:memstat But it had graphing problems if you didn't have ZFS running. (One field less than the RRD graph config required.) In the ToDo section, I promised to have a look at using SPLITNCV. So I am looking into it now, but struggling. To do a STACK graph, the first entry has to be AREA, and the rest need to be STACK. Configuring the RRD graph with SPLITNCV, applies the same graph type to each data set. How do we get the first to be AREA, and the rest STACK?
I don't understand with "SPLITNCV applies the same graph type to each dataset".
With SPLITNCV you have multiple rrd files, each of these hold one data item and you define in the SPLITNCV setting what RRD datatype they are - essentialy GAUGE or COUNTER. E.g. SPLITNCV_foo="ds1:COUNTER,ds2:GAUGE"
In the graph definition, you just refer to the specific RRD-file you want to pull data from. This has no relation to the data being a GAUGE or a COUNTER. So the graphs.cfg definition is straight-forward:
[foo] DEF:foo1=foo,ds1.rrd:lambda:AVERAGE DEF:foo2=foo,ds2.rrd:lambda:AVERAGE AREA:foo1#FF0000:foo 1 data STACK:foo2#0000FF:foo 2 data
Regards, Henrik
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon
-- "Accept the challenges so that you can feel the exhilaration of victory"
- General George Patton
The workaround I implemented for now, is to insert zero-value data entries to ensure a known number fo data values. It's not exactly ideal, but it works for system with or without ZFS.
Regards Vernon
On 2 January 2013 20:46, Vernon Everett <everett.vernon at gmail.com> wrote:
Hi Henrik
Happy New Year!
Maybe I didn't express myself correctly. I understand what you say below, and the problem isn't with SPLITNCV, but rather with configuring the graphs.
As you say below, we can do foo1 as AREA, and all the rest of foo2...fooX as STACK. But how do do this if X is an unknown number? The config example below will work for an unknown number of rrd data files if we are going to make each data set a LINE2
FNPATTERN ^disk(.*).rrd TITLE Disk Utilization YAXIS % Full DEF:p at RRDIDX@=@RRDFN@:pct:AVERAGE LINE2:p at RRDIDX@#@COLOR@:@RRDPARAM@But how do we create a stack graph with unknown number of data sets?
Regards Vernon
On 2 January 2013 20:11, <henrik at hswn.dk> wrote:
On Mon, 31 Dec 2012 10:43:44 +0800, Vernon Everett <everett.vernon at gmail.com> wrote:
Hi all
Has anybody managed to create a stack graph with SPLITNCV data? How do we configure it?
Once upon a time, I authored this http://www.xymonton.org/monitors:memstat But it had graphing problems if you didn't have ZFS running. (One field less than the RRD graph config required.) In the ToDo section, I promised to have a look at using SPLITNCV. So I am looking into it now, but struggling. To do a STACK graph, the first entry has to be AREA, and the rest need to be STACK. Configuring the RRD graph with SPLITNCV, applies the same graph type to each data set. How do we get the first to be AREA, and the rest STACK?
I don't understand with "SPLITNCV applies the same graph type to each dataset".
With SPLITNCV you have multiple rrd files, each of these hold one data item and you define in the SPLITNCV setting what RRD datatype they are - essentialy GAUGE or COUNTER. E.g. SPLITNCV_foo="ds1:COUNTER,ds2:GAUGE"
In the graph definition, you just refer to the specific RRD-file you want to pull data from. This has no relation to the data being a GAUGE or a COUNTER. So the graphs.cfg definition is straight-forward:
[foo] DEF:foo1=foo,ds1.rrd:lambda:AVERAGE DEF:foo2=foo,ds2.rrd:lambda:AVERAGE AREA:foo1#FF0000:foo 1 data STACK:foo2#0000FF:foo 2 data
Regards, Henrik
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon
-- "Accept the challenges so that you can feel the exhilaration of victory"
- General George Patton
-- "Accept the challenges so that you can feel the exhilaration of victory"
- General George Patton
Hi Vernon,
On Wed, 2 Jan 2013 20:46:05 +0800, Vernon Everett <everett.vernon at gmail.com> wrote:
Happy New Year!
thanks, you too.
Maybe I didn't express myself correctly. I understand what you say below, and the problem isn't with SPLITNCV, but rather with configuring the graphs.
As you say below, we can do foo1 as AREA, and all the rest of foo2...fooX as STACK. But how do do this if X is an unknown number?
OK, now I understand your problem. It depends on what RRDtool version you're using, but if it's the 1.2.x version then you do it like this in graphs.cfg:
FNPATTERN ^disk(.*).rrd DEF:p at RRDIDX@=@RRDFN@:pct:AVERAGE AREA:p at RRDIDX@#@COLOR@:@RRDPARAM@:@STACKIT@
The STACK keywork is deprecated in RRDtool 1.2.x, you do all of the stacking with AREA definitions. The "@STACKIT@" thing adds the "STACK" option for all datasets except the first.
Regards, Henrik
participants (3)
-
everett.vernon@gmail.com
-
henrik@hswn.dk
-
jlaidman@rebel-it.com.au