aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/type/GenericStacked.class.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--type/GenericStacked.class.php59
1 files changed, 22 insertions, 37 deletions
diff --git a/type/GenericStacked.class.php b/type/GenericStacked.class.php
index f024336..7595385 100644
--- a/type/GenericStacked.class.php
+++ b/type/GenericStacked.class.php
@@ -3,56 +3,41 @@
3require_once 'Default.class.php'; 3require_once 'Default.class.php';
4 4
5class Type_GenericStacked extends Type_Default { 5class Type_GenericStacked extends Type_Default {
6 6
7 function rrd_gen_graph() { 7 function rrd_gen_graph() {
8 $rrdgraph = $this->rrd_options(); 8 $rrdgraph = $this->rrd_options();
9 9
10 if (is_array($this->args['tinstance'])) 10 $sources = $this->rrd_get_sources();
11 if (is_array($this->order))
12 $array = array_intersect($this->order, $this->args['tinstance']);
13 else
14 $array = $this->args['tinstance'];
15 else
16 $array = $this->data_sources;
17 11
18 $i=0; 12 $i=0;
19 foreach ($array as $value) { 13 foreach ($this->tinstances as $tinstance) {
20 if (is_array($this->args['tinstance'])) { 14 foreach ($this->data_sources as $ds) {
21 $filename = $this->get_filename($value); 15 $rrdgraph[] = sprintf('DEF:min_%s=%s:%s:MIN', $sources[$i], $this->files[$tinstance], $ds);
22 $ds = $this->data_sources[0]; 16 $rrdgraph[] = sprintf('DEF:avg_%s=%s:%s:AVERAGE', $sources[$i], $this->files[$tinstance], $ds);
23 } else { 17 $rrdgraph[] = sprintf('DEF:max_%s=%s:%s:MAX', $sources[$i], $this->files[$tinstance], $ds);
24 $filename = $this->get_filename(); 18 $i++;
25 $ds = $value;
26 } 19 }
27 $rrdgraph[] = sprintf('DEF:min%s=%s:%s:MIN', $i, $filename, $ds);
28 $rrdgraph[] = sprintf('DEF:avg%s=%s:%s:AVERAGE', $i, $filename, $ds);
29 $rrdgraph[] = sprintf('DEF:max%s=%s:%s:MAX', $i, $filename, $ds);
30 $i++;
31 } 20 }
32 21
33 for ($i=count($array)-1 ; $i>=0 ; $i--) { 22 for ($i=count($sources)-1 ; $i>=0 ; $i--) {
34 if ($i == (count($array)-1)) 23 if ($i == (count($sources)-1))
35 $rrdgraph[] = sprintf('CDEF:cdef%d=avg%d', $i, $i); 24 $rrdgraph[] = sprintf('CDEF:area_%s=avg_%1$s', $sources[$i]);
36 else 25 else
37 $rrdgraph[] = sprintf('CDEF:cdef%d=cdef%d,avg%d,+', $i, $i+1, $i); 26 $rrdgraph[] = sprintf('CDEF:area_%s=area_%s,avg_%1$s,+', $sources[$i], $sources[$i+1]);
38 } 27 }
39 28
40 $i=0; 29 foreach ($sources as $source) {
41 foreach ($array as $value) { 30 $color = $this->get_faded_color($this->colors[$source]);
42 $color = $this->get_faded_color($this->colors[$value]); 31 $rrdgraph[] = sprintf('AREA:area_%s#%s', $source, $color);
43 $rrdgraph[] = sprintf('AREA:cdef%d#%s', $i, $color);
44 $i++;
45 } 32 }
46 33
47 $i=0; 34 foreach ($sources as $source) {
48 foreach ($array as $value) { 35 $dsname = $this->ds_names[$source] != '' ? $this->ds_names[$source] : $source;
49 $dsname = $this->ds_names[$value] != '' ? $this->ds_names[$value] : $value; 36 $rrdgraph[] = sprintf('LINE1:area_%s#%s:\'%s\'', $source, $this->validate_color($this->colors[$source]), $dsname);
50 $rrdgraph[] = sprintf('LINE1:cdef%d#%s:\'%s\'', $i, $this->validate_color($this->colors[$value]), $dsname); 37 $rrdgraph[] = sprintf('GPRINT:min_%s:MIN:\'%s Min,\'', $source, $this->rrd_format);
51 $rrdgraph[] = sprintf('GPRINT:min%d:MIN:\'%s Min,\'', $i, $this->rrd_format); 38 $rrdgraph[] = sprintf('GPRINT:avg_%s:AVERAGE:\'%s Avg,\'', $source, $this->rrd_format);
52 $rrdgraph[] = sprintf('GPRINT:avg%d:AVERAGE:\'%s Avg,\'', $i, $this->rrd_format); 39 $rrdgraph[] = sprintf('GPRINT:max_%s:MAX:\'%s Max,\'', $source, $this->rrd_format);
53 $rrdgraph[] = sprintf('GPRINT:max%d:MAX:\'%s Max,\'', $i, $this->rrd_format); 40 $rrdgraph[] = sprintf('GPRINT:avg_%s:LAST:\'%s Last\\l\'', $source, $this->rrd_format);
54 $rrdgraph[] = sprintf('GPRINT:avg%d:LAST:\'%s Last\\l\'', $i, $this->rrd_format);
55 $i++;
56 } 41 }
57 42
58 return $rrdgraph; 43 return $rrdgraph;