]> granicus.if.org Git - pgbadger/commitdiff
Fix several issue with tsung output.
authorDarold <gilles@darold.net>
Sun, 28 Oct 2012 16:51:29 +0000 (17:51 +0100)
committerDarold <gilles@darold.net>
Sun, 28 Oct 2012 16:51:29 +0000 (17:51 +0100)
pgbadger

index bfd17570ebc8d760f8f9c3e7d37ef8d1e93ed5ea..56bb75cd4f398db87db4abe5e868a9617e599e1c 100755 (executable)
--- a/pgbadger
+++ b/pgbadger
@@ -509,6 +509,7 @@ if ($last_parsed && -e $last_parsed) {
 
 # Main loop reading log files
 foreach my $logfile (@log_files) {
+
        &logmsg('DEBUG', "Starting to parse log file: $logfile");
 
        my $curdate = localtime(time);
@@ -806,7 +807,9 @@ foreach my $logfile (@log_files) {
        # Get stats from all pending temporary storage
        foreach my $pid (sort {$cur_info{$a}{date} <=> $cur_info{$b}{date}} %cur_info) {
                &store_queries($pid);
-               if ($extension eq 'tsung') {
+       }
+       if ($extension eq 'tsung') {
+               foreach my $pid (sort { $a <=> $b } keys %tsung_session) {
                        &store_tsung_session($pid);
                }
        }
@@ -3470,6 +3473,9 @@ sub parse_query
                && ($prefix_vars{'t_query'} =~ /disconnection: session time: ([^\s]+) user=([^\s]+) database=([^\s]+) host=([^\s]+) port=(\d+)/))
        {
                return if ($disable_session);
+               if ($extension eq 'tsung') {
+                       $tsung_session{$prefix_vars{'t_pid'}}{disconnection}{date} = $prefix_vars{'t_date'};
+               }
                my $time = $1;
                my $usr  = $2;
                my $db   = $3;
@@ -3688,7 +3694,7 @@ sub store_tsung_session
                        print $fh "    </transaction>\n";
                }
                if ($#{$tsung_session{$pid}{dates}} >= 0) {
-                       my $sec = $tsung_session{$pid}{dates}[-1] - $cur_info{$pid}{date};
+                       my $sec = $tsung_session{$pid}{disconnection}{date} - $tsung_session{$pid}{dates}[-1];
                        print $fh "    <thinktime value=\"$sec\" random=\"true\"></thinktime>\n" if ($sec > 0);
                }
                if (exists $tsung_session{$pid}{connection}{database}) {