X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=contrib%2Fcollection3%2Flib%2FCollectd%2FGraph%2FType%2FGenericStacked.pm;h=c5114a8019ddd3bed411343649adb9ede404d76b;hb=9d15d1058b93acb7be041934acfe76548539041a;hp=36c900a2532ddb02374af0d7df5202764bfae6ea;hpb=cc5ee53dfba55d6fe7c26513618a582adf80b7fa;p=collectd.git diff --git a/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm b/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm index 36c900a2..c5114a80 100644 --- a/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm +++ b/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm @@ -77,6 +77,23 @@ sub getRRDArgs } } + my $stacking = $obj->{'stacking'}; + if ($stacking) + { + if ($stacking =~ m/^(no|false|off|none)$/i) + { + $stacking = 0; + } + else + { + $stacking = 1; + } + } + else # if (!$stacking) + { + $stacking = 1; + } + if (defined $obj->{'rrd_vertical'}) { push (@ret, '-v', $obj->{'rrd_vertical'}); @@ -116,7 +133,7 @@ sub getRRDArgs { $ds_name_len = length ($names[$i]); } - + # Escape colons _after_ the length has been checked. $names[$i] =~ s/:/\\:/g; @@ -126,34 +143,45 @@ sub getRRDArgs "DEF:max${i}=${filename}:${data_source}:MAX"); } - for (my $i = @$idents - 1; $i >= 0; $i--) + if ($stacking) { - if ($i == (@$idents - 1)) + for (my $i = @$idents - 1; $i >= 0; $i--) { - push (@ret, - "CDEF:cdef${i}=avg${i},UN,0,avg${i},IF"); + if ($i == (@$idents - 1)) + { + push (@ret, + "CDEF:cdef${i}=avg${i},UN,0,avg${i},IF"); + } + else + { + my $j = $i + 1; + push (@ret, + "CDEF:cdef${i}=avg${i},UN,0,avg${i},IF,cdef${j},+"); + } } - else + + for (my $i = 0; $i < @$idents; $i++) { - my $j = $i + 1; + my $type_instance = $idents->[$i]{'type_instance'}; + my $color = '000000'; + if (exists $colors->{$type_instance}) + { + $color = $colors->{$type_instance}; + } + + $color = get_faded_color ($color); + push (@ret, - "CDEF:cdef${i}=avg${i},UN,0,avg${i},IF,cdef${j},+"); + "AREA:cdef${i}#${color}"); } } - - for (my $i = 0; $i < @$idents; $i++) + else # if (!$stacking) { - my $type_instance = $idents->[$i]{'type_instance'}; - my $color = '000000'; - if (exists $colors->{$type_instance}) + for (my $i = @$idents - 1; $i >= 0; $i--) { - $color = $colors->{$type_instance}; + push (@ret, + "CDEF:cdef${i}=avg${i}"); } - - $color = get_faded_color ($color); - - push (@ret, - "AREA:cdef${i}#${color}"); } for (my $i = 0; $i < @$idents; $i++)