Format vmstat output
[vrac.git] / vmstat.pl
1 #!/usr/local/bin/perl
2 #
3 # requires textproc/p5-XML-LibXML
4 #
5 use warnings;
6 use strict;
7
8 use XML::LibXML;
9
10 my $filename = 'vmstat.xml';
11
12
13 my %dict;
14 my $offset = 10;
15
16
17 while (1) {
18         print scalar localtime() . "\n";
19         print "------------------------\n" ;
20         system("/usr/bin/vmstat -z --libxo xml >$filename"); 
21         my $doc = XML::LibXML->load_xml(location => $filename); 
22         foreach my $id ($doc->findnodes('//zone')) {
23                 my $name=$id->findvalue('name');
24                 my $used=$id->findvalue('used');
25                 my $val = int($used);
26
27                 if ($name eq "vm pgcache") {
28                         next;
29                 }
30                 
31                 if (exists $dict{$name}) {
32                         my $v0=$dict{$name} + $offset;
33
34                         if ($v0 < $val) {
35 format DIFF_V0V1 =
36         @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
37         $name,$v0,$val
38 .
39                                 $~ = "DIFF_V0V1";
40                                 write;
41                                 $dict{$name} = $val;
42                         }
43                 } else {
44                         $dict{$name} = $val;
45                 }
46         }
47
48         print "\n";
49
50         sleep(5);
51 }
52
53