6 use Data::Dump qw(dump);
8 use Time::HiRes qw(time);
12 my $vmstat = 'vmstat 1';
13 $vmstat = join(' ', @ARGV, $vmstat) if @ARGV;
20 Storable::store_fd $_[0], \*STDOUT
21 if defined $_[0]->{item};
24 warn "# vmstat $vmstat\n";
25 open(my $in, '-|', $vmstat);
28 my @v = split(/\s+/, $_);
29 if ( ! $headers->{$#v} ) {
30 $headers->{$#v} = [ @v ];
31 warn "# headers ", dump $headers;
34 emit { row => [ @v ] };
38 $diff->[$_] = $last[$_] - $v[$_] foreach ( 0 .. $#v );
39 emit { diff => $diff };
44 my @header = @{ $headers->{$#v} };
45 foreach my $i ( 0 .. $#header ) {
46 $item->{ $header[$i] } = $v[$i];
47 # $item->{ $header[$i] . '.diff' } = $diff->[$i];
50 emit { item => $item };