Test-Parser
view release on metacpan or search on metacpan
lib/Test/Parser/Sar.pm view on Meta::CPAN
}
}
} elsif ($data[1] eq 'pswpin/s' and $data[2] eq 'pswpout/s') {
#
# Swapping statistics. sar -W
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 3 and $data[0] ne 'Average:') {
push @{$self->{swapping}},
{time => $data[0],
pswpin_s => $data[1],
pswpout_s => $data[2]};
} else {
last;
}
}
}
} elsif ($count == 4) {
if ($data[1] eq 'frmpg/s') {
#
# Memory statistics. sar -R
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 4 and $data[0] ne 'Average:') {
push @{$self->{memory}},
{time => $data[0],
frmpg_s => $data[1],
bufpg_s => $data[2],
campg_s => $data[3]};
} else {
last;
}
}
}
} elsif ($count == 5) {
if ($data[1] eq 'DEV') {
#
# I/O block device statistics. sar -d
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 5 and $data[0] ne 'Average:') {
push @{$self->{io_bd}},
{time => $data[0],
dev => $data[1],
tps => $data[2],
rd_sec_s => $data[3],
wr_sec_s => $data[4]};
} else {
last;
}
}
} elsif ($data[1] eq 'pgpgin/s') {
#
# Paging statistics. sar -B
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 5 and $data[0] ne 'Average:') {
push @{$self->{paging}},
{time => $data[0],
pgpgin_s => $data[1],
pgpgout_s => $data[2],
fault_s => $data[3],
majflt_s => $data[4]};
} else {
last;
}
}
}
} elsif ($count == 6) {
if ($data[1] eq 'tps') {
#
# I/O transfer rate statistics. sar -b
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 6 and $data[0] ne 'Average:') {
push @{$self->{io_tr}},
{time => $data[0],
tps => $data[1],
rtps => $data[2],
wtps => $data[3],
bread_s => $data[4],
bwrtn_s => $data[5]};
} else {
last;
}
}
} elsif ($data[1] eq 'totsck') {
#
# Part of the network statitics, sockets. sar -n FULL
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 6 and $data[0] ne 'Average:') {
push @{$self->{net_sock}},
{time => $data[0],
totsck => $data[1],
tcpsck => $data[2],
udpsck => $data[3],
rawsck => $data[4],
'ip-frag' => $data[5]};
} else {
last;
}
}
} elsif ($data[1] eq 'runq-sz') {
#
# Queue and load averages. sar -q
# Keep reading until we hit an empty line.
#
while (my $line = <FILE>) {
chomp($line);
@data = split / +/, $line;
if (scalar @data == 6 and $data[0] ne 'Average:') {
push @{$self->{queue}},
{time => $data[0],
'runq-sz' => $data[1],
( run in 0.715 second using v1.01-cache-2.11-cpan-df04353d9ac )