]> git.etc.gen.nz Git - spong.git/commitdiff
parsing code added to handle BBNT clients
authorStephen L Johnson <sjohnson@monsters.org>
Mon, 3 Apr 2000 16:53:49 +0000 (16:53 +0000)
committerStephen L Johnson <sjohnson@monsters.org>
Mon, 3 Apr 2000 16:53:49 +0000 (16:53 +0000)
contrib/plugins/spong-server/data_rrd_la

index 274723c43bc53c5a3975e5a8836f2b9b99536776..156f55e8e751ce9125ce7c36f4cc02fb811799b7 100755 (executable)
@@ -19,14 +19,23 @@ sub data_rrd_la {
    my( $host, $service, $color, $start, $time, $sum, $message ) = @_;
 
    if ($service ne 'cpu' ) { return; }
-
+   $time = time;
    my( $line, $rawfs, $used, $pct, $name, %namemap, $target );
 
    &main::save_data('>', "$RRDDIR/$host/.rrd-la", "");
 
    if ( $sum =~ m/load\s+=\s+([^,]+),\s+([\d]+)\s+users,\s+(\d+)/ ) {
-      ( $load, $users, $jobs ) = ( $1, $2, $3 );
-
+      $users = $2;
+      $jobs = $3;
+      $load = $1;
+   } elsif ( $sum =~ m/(\d+)\s+users\,\s+(\d+)\s+procs\,\s+load=([^,]+)/ ) {
+      $users = $1;
+      $jobs = $2;
+      $load = $3;
+   }
+   $load =~ s/%//;
+   
+   if((defined $load) and (defined $jobs) and (defined $users)) {   
       # If .rrd file not found, built it
       if ( ! -f "$RRDDIR/$host/la.rrd" ) {
         &debug("$RRDDIR/$host/la.rrd not found creating it",4);
@@ -46,11 +55,12 @@ sub data_rrd_la {
       &debug("Updating $host Load Avg rrd file",4);
       {  local $SIG{'PIPE'} = 'IGNORE';
          local $SIG{'CHLD'} = 'IGNORE';
-
          system "$RRDTOOL update $RRDDIR/$host/la.rrd " .
                 "$time:$load:$users:$jobs";
          if ($@) { &error("Error: rrdtool update: $@"); }
       }
+   } else {
+     &debug("Type cpu true but not parseable",4);
    }
 }