Imported Upstream version 2.6.1p1
[debian/amanda] / amplot / amplot.awk
index 962c080b29d237b211ac71add22d25971e089568..2c4a5ad4aa97fc92036c071967bf21b7addbffa9 100644 (file)
@@ -92,7 +92,7 @@ BEGIN{
                else if( $2=="flush" && $3=="size" ) {
                        flush_size = $4;
                }
-               else if( $2=="start")       do_start();
+               else if( $2=="start" && $3=="time")       do_start();
                else if( $2=="send-cmd") { 
                        if( $7=="FILE-DUMP"){
                          file_dump++;
@@ -107,6 +107,9 @@ BEGIN{
                else if( $2=="finished-cmd") cmd_fin++;
                else if( $2=="started")      forked++;
                else if( $2=="QUITTING")     do_quit();
+               else if( $2=="find_diskspace:") ; #eat this line
+               else if( $2=="assign_holdingdisk:") ; #eat this line
+               else if( $2=="adjust_diskspace:") ; #eat this line
                else if( $2=="tape" && $3=="size") ; #eat this line
                else if( $2=="dump" && $3=="failed") ; #eat this line
                else if( $2=="taper" && $3=="failed") ; #eat this line
@@ -129,7 +132,7 @@ BEGIN{
                    print fil, "INFO#", $0;
        }
        else if( $1 == "taper:") {
-               if($3 != "label" && $3 != "end" && $2 != "DONE" && $2 != "pid" && $2 != "slot" && $2 != "reader-side:" && $2 != "page" && $2 != "buffer" && $3 != "at")
+               if($3 != "label" && $3 != "end" && $2 != "DONE" && $2 != "pid" && $2 != "slot" && $2 != "reader-side:" && $2 != "page" && $2 != "buffer" && $3 != "at" && $3 != "switching" && $2 != "slot:")
                    print fil, "INFO#", $0;
        }
        else if( $1 == "FLUSH") {
@@ -151,11 +154,16 @@ function do_state(){              # state line is printed out after driver
 # $11 = "writing"/"idle"# $12 = "idle-dumpers:"
 # $13 = #idle          # $14 = "qlen"          # $15 = "tapeq:"
 # $16 = #waiting       # $17 = "runq:"         # $18 = #not started 
-# $19 = "stoppedq:"    # $20 = #stopped
+# $19 = "roomq"                # $20 = #roomq          # $21 = "wakeup:"
+# $22 = #wakeup                # $23 = "driver-idle:"  # $23 = status
 
        cnt++;                                  # number of event
        time = $4/time_scale;
-       unused = (bandw - $7)*bandw_scale+bandw_raise;
+       #Check overflow in driver ouput (big value instead of negative)
+       if($7>0 && $7 < 0x7fffffff)
+               unused = (bandw - $7)*bandw_scale+bandw_raise;
+       else
+               unused = bandw_raise;
        if( unused != unused_old) 
                printf plot_fmt, time, unused_old, time,unused >>"bandw_free";
        unused_old = unused;
@@ -360,6 +368,7 @@ function do_result(){               # process lines driver: result
        else {                                  # something bad from dumper 
                if ($7=="FAILED") { failed++;}
                else if ($7=="TRY-AGAIN"){ try++;}
+               else if ($7=="PORT") ;  # ignore from chunker
                else if ($7=="RQ-MORE-DISK") ;  # FIXME: ignore for now
                else if ($7=="NO-ROOM")  
                  print fil, pr_time($4),"#"  ++no_room, $0;
@@ -430,19 +439,19 @@ function print_t(){               # printing out the labels for the graph
        printf "set yrange[0:%d]\n",maxy >"title";
        if( maxtime < tim && extend !=0) {
                printf "set xrange[0:%d]\n", tim+30 >>"title";
-               second_col = tim*0.5;
-               key_col = tim;
+               second_col = tim*0.45;
+               key_col = tim + 10;
                third_col = tim +13;
        }
        else {
                printf "set xrange[0:%d]\n", maxtime >>"title";
-               second_col = (maxtime-10) * 0.5;
-               key_col = (maxtime-10) ;
+               second_col = (maxtime-10) * 0.45;
+               key_col = maxtime;
                third_col = maxtime +3;
        }
        label_shift = (7 + int(no_disks/100));
        lab = label_start = maxy+(6*label_shift) ;  # showing 6 labels
-       printf "set key %d, %d\n", key_col, lab >>"title";
+       printf "set key %d, %d\n", key_col, lab+4 >>"title";
        printf "set label %d \"Amanda Dump %s\" at 10,%d\n", ++label,fil, 
                lab >"title";
        lab -= label_shift;
@@ -505,6 +514,8 @@ function print_t(){         # printing out the labels for the graph
                        if(paper==1) printf "set term postscript landscape color \"Times-Roman\" 10\n" >>"title";
                        else printf "set term postscript portrait color \"Times-Roman\" 10\n" >>"title";
                }
+       } else {
+               printf "set term x11\n" >> "title";
        }
        printf "set ylabel """";" >>"title";    # make sure there is no ylabel
        fmt= "set label %d \"%s\" at "third_col", %d\n";