How do i create Graphs, that show the aggregation fuzzyness?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How do i create Graphs, that show the aggregation fuzzyness?

Andreas Schuldei
Hi,

Some time ago I saw graphs, that indicated the MIN, AVG and MAX value in the graph with help of shaded stacked areas between MIN and MAX, and AVG plotted in a line. I imagine this should best be done with translucent colors, too, in case of several overlapping values. 

However i can not find an example for this. Can you please help me and point me to a good example(s)?


BTW, Collectd created the rrd file like this (see below) - is that the right layout and the proper layout and usable consolidation function for showing the aggregation fuzzyness?

rrdtool info counter-Kessel_Durchsatz.rrd
filename = "counter-Kessel_Durchsatz.rrd"
rrd_version = "0003"
step = 10
last_update = 1507841723
header_size = 4744
ds[value].index = 0
ds[value].type = "COUNTER"
ds[value].minimal_heartbeat = 20
ds[value].min = 0.0000000000e+00
ds[value].max = 5.0000000000e+00
ds[value].last_ds = "80990"
ds[value].value = 0.0000000000e+00
ds[value].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 2400
rra[0].cur_row = 494
rra[0].pdp_per_row = 1
rra[0].xff = 1.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "MIN"
rra[1].rows = 2400
rra[1].cur_row = 1091
rra[1].pdp_per_row = 1
rra[1].xff = 1.0000000000e-01
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[2].cf = "MAX"
rra[2].rows = 2400
rra[2].cur_row = 848
rra[2].pdp_per_row = 1
rra[2].xff = 1.0000000000e-01
rra[2].cdp_prep[0].value = NaN
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[3].cf = "AVERAGE"
rra[3].rows = 2880
rra[3].cur_row = 828
rra[3].pdp_per_row = 3
rra[3].xff = 1.0000000000e-01
rra[3].cdp_prep[0].value = 0.0000000000e+00
rra[3].cdp_prep[0].unknown_datapoints = 0
rra[4].cf = "MIN"
rra[4].rows = 2880
rra[4].cur_row = 1538
rra[4].pdp_per_row = 3
rra[4].xff = 1.0000000000e-01
rra[4].cdp_prep[0].value = 0.0000000000e+00
rra[4].cdp_prep[0].unknown_datapoints = 0
rra[5].cf = "MAX"
rra[5].rows = 2880
rra[5].cur_row = 692
rra[5].pdp_per_row = 3
rra[5].xff = 1.0000000000e-01
rra[5].cdp_prep[0].value = 0.0000000000e+00
rra[5].cdp_prep[0].unknown_datapoints = 0
rra[6].cf = "AVERAGE"
rra[6].rows = 2420
rra[6].cur_row = 251
rra[6].pdp_per_row = 25
rra[6].xff = 1.0000000000e-01
rra[6].cdp_prep[0].value = 0.0000000000e+00
rra[6].cdp_prep[0].unknown_datapoints = 0
rra[7].cf = "MIN"
rra[7].rows = 2420
rra[7].cur_row = 820
rra[7].pdp_per_row = 25
rra[7].xff = 1.0000000000e-01
rra[7].cdp_prep[0].value = 0.0000000000e+00
rra[7].cdp_prep[0].unknown_datapoints = 0
rra[8].cf = "MAX"
rra[8].rows = 2420
rra[8].cur_row = 885
rra[8].pdp_per_row = 25
rra[8].xff = 1.0000000000e-01
rra[8].cdp_prep[0].value = 0.0000000000e+00
rra[8].cdp_prep[0].unknown_datapoints = 0
rra[9].cf = "AVERAGE"
rra[9].rows = 2413
rra[9].cur_row = 203
rra[9].pdp_per_row = 111
rra[9].xff = 1.0000000000e-01
rra[9].cdp_prep[0].value = 0.0000000000e+00
rra[9].cdp_prep[0].unknown_datapoints = 0
rra[10].cf = "MIN"
rra[10].rows = 2413
rra[10].cur_row = 189
rra[10].pdp_per_row = 111
rra[10].xff = 1.0000000000e-01
rra[10].cdp_prep[0].value = 0.0000000000e+00
rra[10].cdp_prep[0].unknown_datapoints = 0
rra[11].cf = "MAX"
rra[11].rows = 2413
rra[11].cur_row = 926
rra[11].pdp_per_row = 111
rra[11].xff = 1.0000000000e-01
rra[11].cdp_prep[0].value = 0.0000000000e+00
rra[11].cdp_prep[0].unknown_datapoints = 0
rra[12].cf = "AVERAGE"
rra[12].rows = 2402
rra[12].cur_row = 266
rra[12].pdp_per_row = 1317
rra[12].xff = 1.0000000000e-01
rra[12].cdp_prep[0].value = 0.0000000000e+00
rra[12].cdp_prep[0].unknown_datapoints = 0
rra[13].cf = "MIN"
rra[13].rows = 2402
rra[13].cur_row = 2096
rra[13].pdp_per_row = 1317
rra[13].xff = 1.0000000000e-01
rra[13].cdp_prep[0].value = 0.0000000000e+00
rra[13].cdp_prep[0].unknown_datapoints = 0
rra[14].cf = "MAX"
rra[14].rows = 2402
rra[14].cur_row = 2324
rra[14].pdp_per_row = 1317
rra[14].xff = 1.0000000000e-01
rra[14].cdp_prep[0].value = 0.0000000000e+00
rra[14].cdp_prep[0].unknown_datapoints = 0
rra[15].cf = "AVERAGE"
rra[15].rows = 2400
rra[15].cur_row = 502
rra[15].pdp_per_row = 13149
rra[15].xff = 1.0000000000e-01
rra[15].cdp_prep[0].value = 0.0000000000e+00
rra[15].cdp_prep[0].unknown_datapoints = 3
rra[16].cf = "MIN"
rra[16].rows = 2400
rra[16].cur_row = 1277
rra[16].pdp_per_row = 13149
rra[16].xff = 1.0000000000e-01
rra[16].cdp_prep[0].value = 0.0000000000e+00
rra[16].cdp_prep[0].unknown_datapoints = 3
rra[17].cf = "MAX"
rra[17].rows = 2400
rra[17].cur_row = 2326
rra[17].pdp_per_row = 13149
rra[17].xff = 1.0000000000e-01
rra[17].cdp_prep[0].value = 0.0000000000e+00
rra[17].cdp_prep[0].unknown_datapoints = 3
rra[18].cf = "AVERAGE"
rra[18].rows = 2400
rra[18].cur_row = 1345
rra[18].pdp_per_row = 39447
rra[18].xff = 1.0000000000e-01
rra[18].cdp_prep[0].value = 0.0000000000e+00
rra[18].cdp_prep[0].unknown_datapoints = 15
rra[19].cf = "MIN"
rra[19].rows = 2400
rra[19].cur_row = 971
rra[19].pdp_per_row = 39447
rra[19].xff = 1.0000000000e-01
rra[19].cdp_prep[0].value = 0.0000000000e+00
rra[19].cdp_prep[0].unknown_datapoints = 15
rra[20].cf = "MAX"
rra[20].rows = 2400
rra[20].cur_row = 2146
rra[20].pdp_per_row = 39447
rra[20].xff = 1.0000000000e-01
rra[20].cdp_prep[0].value = 0.0000000000e+00
rra[20].cdp_prep[0].unknown_datapoints = 15


_______________________________________________
rrd-users mailing list
[hidden email]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Reply | Threaded
Open this post in threaded view
|

Re: [unsure] How do i create Graphs, that show the aggregation fuzzyness?

Alex van den Bogaerdt-5
> Hi,
>
> Some time ago I saw graphs, that indicated the MIN, AVG and MAX value in
> the graph with help of shaded stacked areas between MIN and MAX, and AVG
> plotted in a line. I imagine this should best be done with translucent
> colors, too, in case of several overlapping values.
>
> However i can not find an example for this. Can you please help me and
> point me to a good example(s)?

I think you should try to use the manual and experiment on your own, to
see what works best for you. Keep it simple. Start with a simple graph and
then add/modify elements one at a time.

As a start (from memory, you may need to correct typos and/or mistakes)
with "min", "avg" and "max" being your datasources:
1: Compute max - min.  CDEF:dif=max,min,-
2: Draw an invisible line or area (no color) up to min.  LINE:min
3: STACK the difference between max and min on top of that.
AREA:dif#CCCCCC80:spread
4: Draw the line over this area: LINE:avg#FF0000:value


> BTW, Collectd created the rrd file like this (see below) - is that the
> right layout and the proper layout and usable consolidation function for
> showing the aggregation fuzzyness?

I fail to see how these consolidation parameters make any sense.
10 seconds per step is a choice which may or may not be what you want/need.
1 pdp per row is okay, you have 2400 of those so you can display up to
24000 seconds, which is 6 hours 40 minutes, at full resolution.
3 pdp per row is also okay. That becomes a resolution of 30 seconds, and
with 2880 of those you can display 1440 minutes == 24 hours
But then...

25 pdp per row equals 250 seconds per row. not a nice number. Close to,
but not equal to, 4 minutes per row.
111 idem dito: 18.5 minutes per row
1317 idem dito: 3 hours 39 minutes 30 seconds per row ?!?!?
13149 idem dito, you do the math
39447 idem dito, you do the math

They probably result in more or less correct amounts of time per graph,
given one specific graph width. It's a choice, but not my choice. I would
rather display 400 days on a 400 pixel wide graph, or make a graph of 365
pixels wide as yearly graph.

I would want to consolidate my data so that it represents sane amounts of
time, e.g. 5 minutes per row, 15 minutes per row, 1 hour per row, 1 day
per row, and so on.

HTH
Alex


_______________________________________________
rrd-users mailing list
[hidden email]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
Reply | Threaded
Open this post in threaded view
|

Re: How do i create Graphs, that show the aggregation fuzzyness?

Alex van den Bogaerdt-5
Ay... spotted one mistake/omission:

> 3: STACK the difference between max and min on top of that.
> AREA:dif#CCCCCC80:spread

that should read, of course:
AREA:dif#CCCCCC80:spread:STACK


_______________________________________________
rrd-users mailing list
[hidden email]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users