/[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 867 - (show 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 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 my $date = '1970-01-01T';
27
28 open(my $fh, '-|', $cmd) || die "can't open pipe to $cmd $!";
29 while(<$fh>) {
30 chomp;
31 if ( m{(\d\d)/(\d\d)/(\d\d\d\d)$} ) {
32 $date = "$3-$1-$2T";
33 warn "# date $date";
34 }
35 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 $l[0] = $date . $l[0];
46
47 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