/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 867 - (hide annotations)
Tue Dec 16 22:35:05 2008 UTC (15 years, 4 months ago) by dpavlin
File size: 908 byte(s)
parse date from report
1 dpavlin 866 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 dpavlin 867 my $date = '1970-01-01T';
27    
28 dpavlin 866 open(my $fh, '-|', $cmd) || die "can't open pipe to $cmd $!";
29     while(<$fh>) {
30     chomp;
31 dpavlin 867 if ( m{(\d\d)/(\d\d)/(\d\d\d\d)$} ) {
32     $date = "$3-$1-$2T";
33     warn "# date $date";
34     }
35 dpavlin 866 next unless m{^\d\d:\d\d:\d\d};
36     my @l = split(/\s+/,$_);
37     if ( $l[$#l] =~ m{_([^_]+)_} ) {
38     warn "# header $1 ",join('|', @l);
39     $l[0] =~ s{00:00:01}{time} || die "can't locate time column in header";
40     delete( $l[$#l] );
41     @name = @l;
42     next;
43     }
44    
45 dpavlin 867 $l[0] = $date . $l[0];
46    
47 dpavlin 866 push @rows, [ @l ];
48     }
49    
50     return {
51     rows => \@rows,
52     NAME => \@name,
53     }
54     }
55    
56     1;

  ViewVC Help
Powered by ViewVC 1.1.26