From: Guillaume Le Bihan Date: Mon, 30 Mar 2015 12:49:51 +0000 (+0200) Subject: Add in Queries by user a graph showing the duration proportion per user. Some trouble... X-Git-Tag: v7.0~13^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95600adbdecbf5415a6a316f30e5de814e1600f2;p=pgbadger Add in Queries by user a graph showing the duration proportion per user. Some troubles with js. --- diff --git a/pgbadger b/pgbadger index f5a9856..afb5b0b 100755 --- a/pgbadger +++ b/pgbadger @@ -6642,6 +6642,7 @@ sub print_query_per_user { my %infos = (); my $total_count = 0; + my $total_duration = 0; my $query_user_info = ''; my @main_user = ('unknown', 0); my @main_user_duration = ('unknown', 0); @@ -6650,6 +6651,7 @@ sub print_query_per_user &comma_numbers($user_info{$d}{count}) . "" . &convert_time($user_info{$d}{duration}) . ""; $total_count += $user_info{$d}{count}; + $total_duration += $user_info{$d}{duration}; if ($main_user[1] < $user_info{$d}{count}) { $main_user[0] = $d; $main_user[1] = $user_info{$d}{count}; @@ -6668,24 +6670,37 @@ sub print_query_per_user $query_user_info = qq{$NODATA} if (!$total_count); if ($graph) { - my @small = (); + my %small = (); foreach my $d (sort keys %user_info) { if ((($user_info{$d}{count} * 100) / ($total_count || 1)) > $pie_percentage_limit) { - $infos{$d} = $user_info{$d}{count} || 0; + $infos{queries}{$d} = $user_info{$d}{count} || 0; } else { - $infos{"Sum queries per users < $pie_percentage_limit%"} += $user_info{$d}{count} || 0; - push(@small, $d); + $infos{queries}{"Sum queries per users < $pie_percentage_limit%"} += $user_info{$d}{count} || 0; + push(@{$small{queries}}, $d); + } + + if ((($user_info{$d}{duration} * 100) / ($total_duration || 1)) > $pie_percentage_limit) { + $infos{duration}{$d} = $user_info{$d}{duration} || 0; + } else { + $infos{duration}{"Sum duration per users < $pie_percentage_limit%"} += $user_info{$d}{duration} || 0; + push(@{$small{duration}}, $d); } } - if ($#small == 0) { - $infos{$small[0]} = $infos{"Sum queries per users < $pie_percentage_limit%"}; - delete $infos{"Sum queries per users < $pie_percentage_limit%"}; + if ($#{$small{queries}} == 0) { + $infos{queries}{$small{queries}[0]} = $infos{queries}{"Sum queries per users < $pie_percentage_limit%"}; + delete $infos{queries}{"Sum queries per users < $pie_percentage_limit%"}; + } + if ($#{$small{duration}} == 0){ + $infos{duration}{$small{duration}[0]} = $infos{duration}{"Sum duration per users < $pie_percentage_limit%"}; + delete $infos{duration}{"Sum duration per users < $pie_percentage_limit%"}; } } - $drawn_graphs{queriesbyuser_graph} = &flotr2_piegraph($graphid++, 'graph_queriesbyuser', 'Queries per user', %infos); + $drawn_graphs{queriesbyuser_graph} = &flotr2_piegraph($graphid++, 'graph_queriesbyuser', 'Queries per user', %{$infos{queries}}); + $drawn_graphs{durationbyuser_graph} = &flotr2_piegraph($graphid++, 'graph_durationbyuser', 'Duration per user', %{$infos{duration}}); $main_user[1] = &comma_numbers($main_user[1]); $main_user_duration[1] = &convert_time($main_user_duration[1]); + print $fh qq{

Queries by user

@@ -6703,13 +6718,28 @@ sub print_query_per_user
+ }; + + print $fh qq{
$drawn_graphs{queriesbyuser_graph}
+}; + delete $drawn_graphs{queriesbyuser_graph}; + + print $fh qq{ +
+ $drawn_graphs{durationbyuser_graph} +
+}; + delete $drawn_graphs{durationbyuser_graph}; + + print $fh qq{
@@ -6730,8 +6760,6 @@ sub print_query_per_user }; - delete $drawn_graphs{queriesbyuser_graph}; - } sub print_query_per_host @@ -13032,7 +13060,7 @@ footer { height: 400px; } -#queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #queriesbyhost_graph, #histogram_query_times_graph, #histogram_session_times_graph { +#queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #durationbyuser_graph, #queriesbyhost_graph, #histogram_query_times_graph, #histogram_session_times_graph { width : 100%; height: 320px; } @@ -13092,7 +13120,7 @@ footer { width : 94.5%; } - #queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #queriesbyhost_graph, #histogram_query_times_graph, #histogram_session_times_graph { + #queriesbytype_graph, #lockbytype_graph, #databasesessions_graph, #usersessions_graph, #hostsessions_graph, #databaseconnections_graph, #userconnections_graph, #hostconnections_graph, #logstype_graph, #tableanalyzes_graph, #tablevacuums_graph, #tuplevacuums_graph, #pagevacuums_graph, #queriesbydatabase_graph, #queriesbyapplication_graph, #queriesbyuser_graph, #durationbyuser_graph, #queriesbyhost_graph, #histogram_query_times_graph, #histogram_session_times_graph { width : 94.5%; }