use diagnostics;
use constant GRAPH_DIR => "/var/lib/munin/xvm-prod-hosts.mit.edu";
use CGI;
-use CGI::Carp qw(fatalsToBrowser);
use RRDs;
use File::Spec::Functions;
+use subs 'die';
our %graph_types = (cpu => "xen_cpu");
our %formats = qw(svg image/svg+xml png image/png eps application/postscript pdf application/pdf);
$type =~ m|^(\w+)$| or die "Invalid graph type";
$type = $graph_types{$1} or die "Invalid graph type";
-my $path = catfile(GRAPH_DIR, "*-$type-$uuid-?.rrd");
+my $path = catfile(GRAPH_DIR, "*-$type-uuid_$uuid-?.rrd");
my @files = glob $path or die "No data found";
push @args, "--start", "-".$days."d";
print STDERR "XVM usage: ", Dumper(\@args);
}
RRDs::graph (@args);
+
+sub die(@) {
+ use Image::Magick;
+
+ my $im = Image::Magick->new(background => "white",
+ fill => "red",
+ pointsize => 14,
+ );
+ $im->Read('label:'.join('', @_));
+ $format = 'png' unless exists($formats{$format});
+ $mime_type = $formats{$format};
+ $| = 1;
+ print $q->header(-type=>$mime_type);
+ $im->Write($format.':-');
+ CORE::die @_;
+}