7 sub XXX { warn Data::Dump::dump( @_ ) };
9 my $measurement = 'debug';
14 my ($hour,$min,$sec)=(0,0,0);
18 #warn "# time $yyyy-$mm-$dd $hour:$min:$sec $time\n";
19 $time = timelocal($sec,$min,$hour,$dd,$mm-1,$yyyy) * 1000_000_000;
23 my $tags = $ENV{TAGS};
24 $tags = ",$tags" if $tags && $tags !~ m/^,/;
34 if ( /^([\w\-]+)\s+(\d+\S+)\s+(.+)\s+(\w+)\s+(\d\d\d\d)\/(\d\d)\/(\d\d)$/ ) {
36 @cols = qw( kernel build arch );
37 @vals = ( qq{"$2"}, qq{"$3"}, qq{"$4"} ); # must quote all this as strings for influx
38 ( $yyyy, $mm, $dd ) = ( $5, $6, $7 ); update_time;
40 } elsif ( m/analysis date: (\S+)/ ) {
41 ( $yyyy, $mm, $dd ) = split(/\//, $1, 3); update_time;
44 } elsif ( m/^\d\d:\d\d:\d\d\s+(.+)_(\w+)_/ ) {
47 $cols =~ s/(in|out):\s+(\w+)/$1_$2/g; # ipv4, ipv6
48 @cols = split(/\s+/, $cols);
51 } elsif ( m/^(\d\d:\d\d:\d\d)\s+(.+)/ ) {
52 next if m/logging restarted/;
53 ( $hour, $min, $sec ) = split(/:/, $1, 3); update_time;
54 @vals = split(/\s+/, $2);
55 } elsif ( m/^\s+(.+)/ ) {
56 @vals = split(/\s+/, $1);
58 warn "UNPARSED: $_\n";
63 next if $measurement =~ /top3/; # FIXME this isn't parsed yet
65 #XXX { cols => \@cols, vals => \@vals };
66 print "$measurement,host=$host$tags";
68 foreach my $i ( 0 .. $#cols ) {
69 if ( my $c = $cols[$i] ) {
72 if ( $c =~ m/(cpu|disk|interf)/ ) { ; # XXX tag
82 warn "WARN line: [$_]\nno vals[$i] in ",Data::Dump::dump( @vals );
86 $v *= 1024 * 1024 if $v =~ s/M$//;
90 $v =~ s/\s/\\ /g unless $v =~ m/"/;
92 next if $c eq "busy" && $v eq "?";
94 # $s = 'i' if $v =~ m/^\d+$/;
99 $d = '' if $s eq " "; # move to values
100 $d = ',' if $d eq " "; # move to values
104 die "line: [$_]\nno cols[$i] in ",Data::Dump::dump( @cols );