#!/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(){ 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 "\n\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 ""; exit; } &graph_cpu_taeglich;