/[Frey]/trunk/lib/Frey/Shell/sar.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/Frey/Shell/sar.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 866 - (show annotations)
Tue Dec 16 21:12:17 2008 UTC (15 years, 4 months ago) by dpavlin
File size: 762 byte(s)
simple integration of sar command to produce tabular output (sponge)
1 package Frey::Shell::sar;
2 use Moose;
3
4 extends 'Frey';
5 with 'Frey::Web';
6 #with 'Frey::Storage';
7
8 has sar_command => (
9 is => 'rw',
10 isa => 'Str',
11 required => 1,
12 default => 'sar',
13 );
14
15 sub as_sponge {
16 my ($self,$opts) = @_;
17
18 $opts ||= '-u';
19
20 my @rows;
21 my @name;
22
23 my $cmd = $self->sar_command . ' ' . $opts;
24 warn "# cmd: $cmd";
25
26 open(my $fh, '-|', $cmd) || die "can't open pipe to $cmd $!";
27 while(<$fh>) {
28 chomp;
29 next unless m{^\d\d:\d\d:\d\d};
30 my @l = split(/\s+/,$_);
31 if ( $l[$#l] =~ m{_([^_]+)_} ) {
32 warn "# header $1 ",join('|', @l);
33 $l[0] =~ s{00:00:01}{time} || die "can't locate time column in header";
34 delete( $l[$#l] );
35 @name = @l;
36 next;
37 }
38
39 push @rows, [ @l ];
40 }
41
42 return {
43 rows => \@rows,
44 NAME => \@name,
45 }
46 }
47
48 1;

  ViewVC Help
Powered by ViewVC 1.1.26