fix hostnames with dashes
[atop-influxdb] / atop2influx.pl
index d56c4da..19f0768 100755 (executable)
@@ -20,6 +20,9 @@ sub update_time {
        return $time;
 }
 
+my $tags = $ENV{TAGS};
+$tags = ",$tags" if $tags && $tags !~ m/^,/;
+
 while(<>) {
        chomp;
        next if /^$/;
@@ -28,7 +31,7 @@ while(<>) {
 
        my @vals;
 
-       if ( /^(\w+)\s+(\d+\S+)\s+(.+)\s+(\w+)\s+(\d\d\d\d)\/(\d\d)\/(\d\d)$/ ) {
+       if ( /^([\w\-]+)\s+(\d+\S+)\s+(.+)\s+(\w+)\s+(\d\d\d\d)\/(\d\d)\/(\d\d)$/ ) {
                $host = $1;
                @cols = qw( kernel build arch );
                @vals =   ( qq{"$2"}, qq{"$3"}, qq{"$4"} ); # must quote all this as strings for influx
@@ -52,7 +55,7 @@ while(<>) {
        } elsif ( m/^\s+(.+)/ ) {
                @vals = split(/\s+/, $1);
        } else {
-               die "UNPARSED: $_\n";
+               warn "UNPARSED: $_\n";
        }
 
        next unless @vals;
@@ -60,7 +63,7 @@ while(<>) {
        next if $measurement =~ /top3/; # FIXME this isn't parsed yet
 
        #XXX { cols => \@cols, vals => \@vals };
-       print "atop_$measurement,host=$host";
+       print "$measurement,host=$host$tags";
        my $d = " ";
        foreach my $i ( 0 .. $#cols ) {
                if ( my $c = $cols[$i] ) {