|
@@ -9,6 +9,7 @@
|
|
|
$Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
|
$Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
|
|
|
|
|
|
|
my %ResponseTimes;
|
|
my %ResponseTimes;
|
|
|
|
|
+my %ResponseSizes;
|
|
|
my %Responses;
|
|
my %Responses;
|
|
|
my %Requests;
|
|
my %Requests;
|
|
|
my %Logins;
|
|
my %Logins;
|
|
@@ -39,6 +40,28 @@ sub ResponseTimesMinMaxSum($$) {
|
|
|
$ResponseTimes{$req}->{'sum'} += $time;
|
|
$ResponseTimes{$req}->{'sum'} += $time;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+sub ResponseSizesMinMaxSum($$$) {
|
|
|
|
|
+ my $req = $_[0];
|
|
|
|
|
+ my $type = $_[1];
|
|
|
|
|
+ my $size = $_[2];
|
|
|
|
|
+
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}->{'cnt'}++;
|
|
|
|
|
+
|
|
|
|
|
+ if (! defined $ResponseSizes{$type}->{$req}->{'min'}) {
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}->{'min'} = $size;
|
|
|
|
|
+ } elsif ($ResponseSizes{$type}->{$req}->{'min'} > $size) {
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}->{'min'} = $size;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (! defined $ResponseSizes{$type}->{$req}->{'max'}) {
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}{'max'} = $size;
|
|
|
|
|
+ } elsif ($ResponseSizes{$type}->{$req}->{'max'} < $size) {
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}{'max'} = $size;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $ResponseSizes{$type}->{$req}->{'sum'} += $size;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
sub Sum($) {
|
|
sub Sum($) {
|
|
|
my $phash = $_[0];
|
|
my $phash = $_[0];
|
|
|
my $sum = 0;
|
|
my $sum = 0;
|
|
@@ -78,6 +101,14 @@ while (defined($ThisLine = <STDIN>)) {
|
|
|
} elsif ( $ThisLine =~ / \S+ response status for .* in ([0-9.]+) seconds: (\d+)/o ) {
|
|
} elsif ( $ThisLine =~ / \S+ response status for .* in ([0-9.]+) seconds: (\d+)/o ) {
|
|
|
$req .= ":R=" . $2;
|
|
$req .= ":R=" . $2;
|
|
|
ResponseTimesMinMaxSum($req, $1) if ($Detail >= 10);
|
|
ResponseTimesMinMaxSum($req, $1) if ($Detail >= 10);
|
|
|
|
|
+ } elsif ( $ThisLine =~ / \S+ response status for .* with depth '(\d)' in ([0-9.]+) seconds (\S+) (\d+) bytes: (\d+)/o ) {
|
|
|
|
|
+ $req .= ":D=" . $1 . ":R=" . $5;
|
|
|
|
|
+ ResponseTimesMinMaxSum($req, $2) if ($Detail >= 10);
|
|
|
|
|
+ ResponseSizesMinMaxSum($req, $3, $4) if ($Detail >= 10);
|
|
|
|
|
+ } elsif ( $ThisLine =~ / \S+ response status for .* in ([0-9.]+) seconds (\S+) (\d+) bytes: (\d+)/o ) {
|
|
|
|
|
+ $req .= ":R=" . $4;
|
|
|
|
|
+ ResponseTimesMinMaxSum($req, $1) if ($Detail >= 10);
|
|
|
|
|
+ ResponseSizesMinMaxSum($req, $2, $3) if ($Detail >= 10);
|
|
|
}
|
|
}
|
|
|
$Responses{$req}++;
|
|
$Responses{$req}++;
|
|
|
}
|
|
}
|
|
@@ -174,6 +205,22 @@ if (keys %ResponseTimes) {
|
|
|
print "-" x60 . "\n";
|
|
print "-" x60 . "\n";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+if (keys %ResponseSizes) {
|
|
|
|
|
+ for my $type (sort keys %ResponseSizes) {
|
|
|
|
|
+ print "\n**Response sizes (counts, bytes: $type) (D=<depth> R=<result>)**\n";
|
|
|
|
|
+ printf "%-18s | %7s | %9s | %9s | %9s |\n", "Response", "cnt", "min", "max", "avg";
|
|
|
|
|
+ print "-" x66 . "\n";
|
|
|
|
|
+ foreach my $req (sort keys %{$ResponseSizes{$type}}) {
|
|
|
|
|
+ printf "%-18s | %7d | %9d | %9d | %9d |\n", $req
|
|
|
|
|
+ , $ResponseSizes{$type}->{$req}->{'cnt'}
|
|
|
|
|
+ , $ResponseSizes{$type}->{$req}->{'min'}
|
|
|
|
|
+ , $ResponseSizes{$type}->{$req}->{'max'}
|
|
|
|
|
+ , $ResponseSizes{$type}->{$req}->{'sum'} / $ResponseSizes{$type}->{$req}->{'cnt'};
|
|
|
|
|
+ }
|
|
|
|
|
+ print "-" x66 . "\n";
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
if (keys %OtherEvents) {
|
|
if (keys %OtherEvents) {
|
|
|
print "\n**Other Events**\n";
|
|
print "\n**Other Events**\n";
|
|
|
foreach $ThisOne (sort keys %OtherEvents) {
|
|
foreach $ThisOne (sort keys %OtherEvents) {
|