fix duplicate name
authorDavid Marec <DavidMarec@users.noreply.github.com>
Mon, 8 May 2023 08:02:18 +0000 (10:02 +0200)
committerDavid Marec <DavidMarec@users.noreply.github.com>
Mon, 8 May 2023 08:02:18 +0000 (10:02 +0200)
vmstat.pl
vmstatm.pl

index 79c395a0f913fbe86eee72399a2583cd43a36ec6..2898f9166995ed86b6863fa7434dc8453a2f9f5c 100755 (executable)
--- a/vmstat.pl
+++ b/vmstat.pl
@@ -22,16 +22,18 @@ my %dict;
 
 while (1) {
        print scalar localtime() . "\n";
-       print "------------------------\n" ;
+       print "------------------------\n";
        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}) {
index 005b4a9f070308fd22bf2211a4b1354bb94e1038..edeabdf676b014f44ff4d3711058525d352fa3b7 100755 (executable)
@@ -3,18 +3,23 @@
 # requires textproc/p5-XML-LibXML
 #
 use warnings;
+use strict;
 
 use XML::LibXML;
 
 my $filename = 'vmstatm.xml';
-
 my %dict;
-my $offset = 10;
+
+my ($offset) = @ARGV;
+
+if (not defined $offset) {
+       $offset = 10;
+}
 
 while (1) {
        print scalar localtime() . "\n";
        system("/usr/bin/vmstat -m --libxo xml >$filename"); 
-       $doc = XML::LibXML->load_xml(location => $filename); 
+       my $doc = XML::LibXML->load_xml(location => $filename); 
        foreach my $id ( $doc->findnodes('//memory')) {
                my $name=$id->findvalue('type');
                my $used=$id->findvalue('memory-use');
@@ -22,7 +27,12 @@ while (1) {
                        my $v0=$dict{$name} + $offset;
 
                        if ($v0 < $used) {
-                               print "$name: $v0 => $used \n";
+format DIFF_V0V1 =
+       @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
+       $name,$v0,$used
+.
+                               $~ = "DIFF_V0V1";
+                               write;
                                $dict{$name}=$used;
                        }
                } else {