-#!/usr/bin/perl
+#!/usr/local/bin/perl
=pod
use warnings;
use FindBin;
+use Convert::Base64;
use lib "$FindBin::Bin/lib", "$FindBin::Bin/../lib";
use ClearadmWeb;
use Display;
-use CGI qw (:standard :cgi-lib);
+use CGI qw(:standard :cgi-lib);
use GD::Graph::area;
my %opts = Vars;
$opts{scaling} = 'Hour';
} # if
-sub labelY ($) {
- my ($value) = @_;
-
- return $opts{tiny} ? '' : $value;
-} # labelY
-
my $clearadm = Clearadm->new;
-my $graph = GD::Graph::area->new ($opts{width}, $opts{height});
+my $graph = GD::Graph::area->new($opts{width}, $opts{height});
graphError "System is required"
unless $opts{system};
graphError "Points not numeric (points: $opts{points})"
if $opts{points} and $opts{points} !~ /^\d+$/;
-my @loads = $clearadm->GetLoadavg (
+my @loads = $clearadm->GetLoadavg(
$opts{system},
$opts{start},
$opts{end},
$opts{points},
- $opts{scaling}
+ $opts{scaling},
);
-graphError "No loadavg data found for system $opts{system}"
+graphError "No loadavg data"
unless @loads;
my (@x, @y);
-foreach (@loads) {
+for (@loads) {
my %load = %{$_};
if ($opts{tiny}) {
} else {
push @x, $load{timestamp};
} # if
-
+
push @y, $load{loadavg};
-} # foreach
+} # for
my @data = ([@x], [@y]);
my $x_label = $opts{tiny} ? '' : 'Time';
my $y_label = $opts{tiny} ? '' : 'Load';
my $title = $opts{tiny} ? '' : "Load Average for $opts{system}";
+my $labelY = $opts{tiny} ? '' : '%.2f';
-$graph->set (
+$graph->set(
x_label => $x_label,
x_labels_vertical => 1,
x_label_skip => $x_label_skip,
x_label_position => .5,
y_label => $y_label,
- y_number_format => &labelY,
+ y_number_format => $labelY,
title => $title,
dclrs => [$opts{color}],
bgclr => 'white',
my $image = $graph->plot(\@data)
or croak $graph->error;
-print "Content-type: image/png\n\n";
-print $image->png;
+unless ($opts{generate}) {
+ print "Content-type: image/png\n\n";
+ print $image->png;
+} else {
+ print encode_base64 $image->png;
+} # unless
=pod
Copyright (c) 2010, ClearSCM, Inc. All rights reserved.
-=cut
\ No newline at end of file
+=cut