use builtin say
[vrac.git] / vmstat.pl
index 9e7f436614d3d97390ae7c5de633ae2882e57057..9a4c21e9965496705adafacfe58a04db7bd58094 100755 (executable)
--- a/vmstat.pl
+++ b/vmstat.pl
@@ -5,36 +5,46 @@
 use warnings;
 use strict;
 
+use feature 'say';
 use XML::LibXML;
 
+my ($offset) = @ARGV;
+
+if (not defined $offset) {
+       $offset = 10;
+}
+
 my $filename = 'vmstat.xml';
 
 
 my %dict;
-my $offset = 10;
+
 
 
 while (1) {
-       print scalar localtime() . "\n";
-       print "------------------------\n" ;
+       say scalar localtime();
+       say "------------------------";
        system("/usr/bin/vmstat -z --libxo xml >$filename"); 
        my $doc = XML::LibXML->load_xml(location => $filename); 
+       my $c = 0;
        foreach my $id ($doc->findnodes('//zone')) {
                my $name=$id->findvalue('name');
                my $used=$id->findvalue('used');
+
                my $val = int($used);
 
                if ($name eq "vm pgcache") {
-                       next;
+                       $name = $name . "_$c";
+                       $c++;
                }
                
                if (exists $dict{$name}) {
                        my $v0=$dict{$name} + $offset;
 
-                       if ($v0 < $val) {
+                       if ($v0 <= $val) {
 format DIFF_V0V1 =
        @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
-       $name,$v0,$val
+       $name,$dict{$name},$val
 .
                                $~ = "DIFF_V0V1";
                                write;
@@ -45,7 +55,7 @@ format DIFF_V0V1 =
                }
        }
 
-       print "\n";
+       say '';
 
        sleep(5);
 }