#!/usr/bin/perl
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Chart::Composite;
sub graph_cpu_taeglich {
$im = Chart::Composite->new (2000,1000);
$im->set (title => 'CPU-Auslastung des Servers ' .
'in Abhaengigkeit der Tageszeit ' ,
legend => "bottom",
legend_labels => ['Run-Queue','Block-Queue','Wait-Queue','Useranteil','Systemanteil','Gesamt'],
precision => '1',
brush_size => '1',
pt_size => '1',
grid_lines => "true",
grey_background => "true",
x_ticks => "vertical",
skip_x_ticks => '4',
#pt_size => '14',
x_label => 'Zeit',
y_label2 => 'Anzahl Prozesse in Queue',
y_label => 'CPU-Auslastung in [%]');
$im->set (composite_info =>
[['Lines', [4,5,6]],['LinesPoints', [1,2,3]]],
min_y_ticks => '10',
max_val1 => '100',
max_val2 => '30',
#min_val2 => '0',
);
$im->set('colors' => {
background => [255,255,255],
y_grid_lines => [255,155,0],
y2_grid_lines => [50,0,255],
y_label => [255,155,0],
y_label2 => [50,0,255],
dataset4 => [100,50,50],
dataset5 => [255,55,130],
});
my $Counter=7; # jede 7. Zeile wird auf X-Achse mit Zeit angezeigt
$Datname="CPU-Daten";
if (! -e "$Datname") {
&fehler5;
}
open(DAT,"<$Datname") or die "Fehler: $!";
while(<DAT>){
chomp;
my @zeile = split(/\s+/,$_);
my $spalte1 = $zeile[0];
my $spalte2 = $zeile[1];
my $spalte3 = $zeile[2];
my $spalte4 = $zeile[3];
my $spalte5 = $zeile[4];
my $spalte6 = $zeile[5];
if ($Counter == 7) {
$spalte7 = $zeile[6];
$Counter=0;
}
else {
$spalte7 = undef;
$Counter++;
}
$im->add_pt ($spalte7, $spalte1, $spalte2, $spalte3, $spalte4, $spalte5, $spalte6);
}
close(DAT);
print "Content-type: image/png\n\n";
binmode STDOUT;
$im->png(*STDOUT);
exit;
}
sub fehler5 {
print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "Datensatz nicht vorhanden!\n\n";
print "Mit dem Zurueck-Button Ihres Browsers kommen\n";
print "Sie wieder zurueck zur vorigen Seite.\n";
print "</body></html>";
exit;
}
&graph_cpu_taeglich;