-foreach my $i (0..$#files) {
- $files[$i] =~ m|^([^:]+)$|;
- push @args, "DEF:odata$i=$1:42:AVERAGE";
- push @args, "CDEF:data$i=odata$i,UN,0,odata$i,IF,10000,/";
+my @sub_types = {suffix => ""};
+if ($type{"sub_types"}) {
+ @sub_types = @{$type{"sub_types"}};
+}
+
+foreach my $sub_type (@sub_types) {
+ my $cdef = $sub_type->{"cdef"} || $type{"cdef"};
+ my $suffix = $sub_type->{"suffix"};
+
+ my $path = catfile(GRAPH_DIR, "*-$type{plugin_name}-uuid_$uuid$suffix-?.rrd");
+ my @files = glob $path;
+ unless (@files) {
+ print STDERR "No data found: $path\n";
+ die "No data found";
+ }
+
+ foreach my $i (0..$#files) {
+ $files[$i] =~ m|^([^:]+)$|;
+ my $data = "data$suffix$i";
+ push @args, "DEF:o$data=$1:42:AVERAGE";
+ push @args, "CDEF:$data=o$data,UN,0,o$data,IF".($cdef ? ",$cdef" : "");
+ }
+ push @args, "CDEF:total$suffix=0,".join(",+,", map {"data$suffix$_"} 0..$#files).",+";
+ push @args, "$type{draw}:total$suffix#0000FF";