+my $host = shift @ARGV || die "usage: INFLUX=http://127.0.0.1:8086/write?db=snmp COMMUNITY=snmp-comminity $0 host";
+my $community = $ENV{COMMUNITY} || 'public';
+my $influx = $ENV{INFLUX} || 'http://127.0.0.1:8086/write?db=snmp';
+
+use Data::Dump qw(dump);
+sub XXX { warn "XXX ", scalar(@_), Data::Dump::dump(@_), join(' ',caller), "\n"; };
+
+my ($sec,$min,$hour,$dd,$mm,$yyyy) = localtime(time); $mm++;
+my $time;
+use Time::Local;
+sub update_time {
+ #warn "# time $yyyy-$mm-$dd $hour:$min:$sec $time\n";
+ $time = timelocal($sec,$min,$hour,$dd,$mm-1,$yyyy) * 1000_000_000;
+ return $time;
+}
+
+# FIXME add -A to pull interfaces if they go up and down
+# -l loopback
+# -a all
+my $cmd = qq{ifstat -s '$community@#$host' -b -n -t 1};
+warn "# $cmd\n";
+open(my $ifstat, '-|', $cmd);
+
+my $first_skipped = 0;
+
+my $curl;
+sub reopen_curl {
+ if ( $ENV{INFLUX} ) {
+ open($curl, '|-', qq( curl -XPOST $influx --data-binary \@- ));
+ } else {
+ open($curl, '|-', 'tee /dev/shm/curl.debug');
+ }
+}
+
+my $stat;
+
+my @if;
+my @direction;
+
+my $lines;