[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