[otrs-cvs] CVS: otrs/Kernel/Modules AdminPerformanceLog.pm,1.4,1.5

cvs-log at otrs.org cvs-log at otrs.org
Thu Jan 4 15:49:29 CET 2007


Update of /home/cvs/otrs/Kernel/Modules
In directory lancelot:/tmp/cvs-serv26325/Kernel/Modules

Modified Files:
	AdminPerformanceLog.pm 
Log Message:
heavy improvement of PerformanceLog feature

Index: AdminPerformanceLog.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/Modules/AdminPerformanceLog.pm,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** AdminPerformanceLog.pm	9 Oct 2006 17:38:03 -0000	1.4
--- AdminPerformanceLog.pm	4 Jan 2007 14:49:27 -0000	1.5
***************
*** 1,5 ****
  # --
  # Kernel/Modules/AdminPerformanceLog.pm - provides a log view for admins
! # Copyright (C) 2001-2006 OTRS GmbH, http://otrs.org/
  # --
  # $Id$
--- 1,5 ----
  # --
  # Kernel/Modules/AdminPerformanceLog.pm - provides a log view for admins
! # Copyright (C) 2001-2007 OTRS GmbH, http://otrs.org/
  # --
  # $Id$
***************
*** 44,47 ****
--- 44,66 ----
      my %Param = @_;
  
+     # performance log is enabled
+     if ($Self->{ConfigObject}->Get('PerformanceLog')) {
+         $Self->{LayoutObject}->Block(
+             Name => 'Enabled',
+             Data => {
+                 %Param,
+             },
+         );
+     }
+     # performance log is disabled
+     else {
+         $Self->{LayoutObject}->Block(
+             Name => 'Disabled',
+             Data => {
+                 %Param,
+             },
+         );
+     }
+ 
      # reset log file
      if ($Self->{Subaction} eq 'Reset') {
***************
*** 104,107 ****
--- 123,127 ----
          foreach my $Minute (5, 30, 60, 2*60, 24*60, 2*24*60) {
              my %Count = ();
+             my %Action = ();
              my %Sum = ();
              my %Max = ();
***************
*** 109,114 ****
              foreach my $Row (reverse @Data) {
                  if ($Row->[0] > time()-(60*$Minute)) {
                      $Count{$Row->[1]}++;
!                     $Sum{$Row->[1]} = $Sum{$Row->[1]} + $Row->[2];
                      if (!defined($Max{$Row->[1]})) {
                          $Max{$Row->[1]} = $Row->[2];
--- 129,140 ----
              foreach my $Row (reverse @Data) {
                  if ($Row->[0] > time()-(60*$Minute)) {
+                     # whole
                      $Count{$Row->[1]}++;
!                     if ($Sum{$Row->[1]}) {
!                         $Sum{$Row->[1]} = $Sum{$Row->[1]} + $Row->[2];
!                     }
!                     else {
!                         $Sum{$Row->[1]} = $Row->[2];
!                     }
                      if (!defined($Max{$Row->[1]})) {
                          $Max{$Row->[1]} = $Row->[2];
***************
*** 123,126 ****
--- 149,175 ----
                          $Min{$Row->[1]} = $Row->[2];
                      }
+                     # for each action
+                     if ($Row->[4] =~ /^(.+?|)Action=(.+?)(&.*|)$/) {
+                         my $Module = $2;
+                         $Action{$Module}->{Count}->{$Row->[1]}++;
+                         if ($Action{$Module}->{Sum}->{$Row->[1]}) {
+                             $Action{$Module}->{Sum}->{$Row->[1]} = $Action{$Module}->{Sum}->{$Row->[1]} + $Row->[2];
+                         }
+                         else {
+                             $Action{$Module}->{Sum}->{$Row->[1]} = $Row->[2];
+                         }
+                         if (!defined($Action{$Module}->{Max}->{$Row->[1]})) {
+                             $Action{$Module}->{Max}->{$Row->[1]} = $Row->[2];
+                         }
+                         elsif ($Action{$Module}->{Max}->{$Row->[1]} < $Row->[2]) {
+                             $Action{$Module}->{Max}->{$Row->[1]} = $Row->[2];
+                         }
+                         if (!defined($Action{$Module}->{Min}->{$Row->[1]})) {
+                             $Action{$Module}->{Min}->{$Row->[1]} = $Row->[2];
+                         }
+                         elsif ($Action{$Module}->{Min}->{$Row->[1]} > $Row->[2]) {
+                             $Action{$Module}->{Min}->{$Row->[1]} = $Row->[2];
+                         }
+                     }
                  }
                  else {
***************
*** 141,145 ****
                      $Average =~ s/^(.*\.\d\d).+?$/$1/g;
                      $Self->{LayoutObject}->Block(
!                         Name => 'Row',
                          Data => {
                              Interface => $_,
--- 190,194 ----
                      $Average =~ s/^(.*\.\d\d).+?$/$1/g;
                      $Self->{LayoutObject}->Block(
!                         Name => 'Interface',
                          Data => {
                              Interface => $_,
***************
*** 151,154 ****
--- 200,220 ----
                          },
                      );
+                     foreach my $Module (sort keys %Action) {
+                         if ($Action{$Module}->{Sum}->{$_}) {
+                         my $Average = $Action{$Module}->{Sum}->{$_} / $Action{$Module}->{Count}->{$_};
+                         $Average =~ s/^(.*\.\d\d).+?$/$1/g;
+                             $Self->{LayoutObject}->Block(
+                                 Name => 'Row',
+                                 Data => {
+                                     Interface => $Module,
+                                     Average => $Average,
+                                     Count => $Action{$Module}->{Count}->{$_} || 0,
+                                     Sum => $Action{$Module}->{Sum}->{$_} || 0,
+                                     Max => $Action{$Module}->{Max}->{$_} || 0,
+                                     Min => $Action{$Module}->{Min}->{$_} || 0,
+                                 },
+                             );
+                         }
+                     }
                  }
              }



More information about the cvs-log mailing list