From c81c111cc4208a41252490bc3be854eb9ff01a60 Mon Sep 17 00:00:00 2001 From: Darold Gilles Date: Tue, 26 Nov 2013 19:05:18 +0100 Subject: [PATCH] Add pie chart of top second level domains. Thanks to Jeetendra Poojari for the feature request. --- SquidAnalyzer.pm | 31 ++++++++++++++++++++++++++++--- lang/en_US.txt | 2 ++ lang/fr_FR.txt | 2 ++ resources/squidanalyzer.css | 2 +- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/SquidAnalyzer.pm b/SquidAnalyzer.pm index 5e597eb..2d957dc 100644 --- a/SquidAnalyzer.pm +++ b/SquidAnalyzer.pm @@ -119,6 +119,8 @@ my %Translate = ( 'Domain_number' => 'Number of domain', 'Domain_graph_hits_title' => 'Domain Hits Statistics on', 'Domain_graph_bytes_title' => 'Domain Bytes Statistiques on', + 'Second_domain_graph_hits_title' => 'Second level Hits Statistics on', + 'Second_domain_graph_bytes_title' => 'Second level Bytes Statistiques on', 'First_visit' => 'First visit', 'Last_visit' => 'Last visit', 'Globals_Statistics' => 'Globals Statistics', @@ -2734,6 +2736,8 @@ sub _print_top_domain_stat $t1 =~ s/\%d/$self->{TopNumber}/; if ($tpe eq 'Hits') { + $domain_stat{"$1$2"}{hits} += $hits; + $domain_stat{"$1$2"}{bytes} += $bytes; print $out $self->_print_title($t1, $stat_date); my %data = (); @@ -2746,8 +2750,19 @@ sub _print_top_domain_stat } my $title = "$Translate{'Domain_graph_hits_title'} $stat_date"; my $domain_hits = $self->flotr2_piegraph(1, 'domain_hits', $title, $Translate{'Domains_graph'}, '', %data); - print $out qq{}; + %data = (); + foreach my $dom (keys %domain_stat) { + if (($domain_stat{$dom}{hits}/$total_hits)*100 > $self->{MinPie}) { + $data{$dom} = $domain_stat{$dom}{hits}; + } else { + $data{'others'} += $domain_stat{$dom}{hits}; + } + } + my $title2 = "$Translate{'Second_domain_graph_hits_title'} $stat_date"; + my $domain2_hits = $self->flotr2_piegraph(1, 'second_domain_hits', $title2, $Translate{'Domains_graph'}, '', %data); + print $out qq{
$domain_hits
}; $domain_hits = ''; + $domain2_hits = ''; %data = (); foreach my $dom (keys %perdomain) { if (($perdomain{$dom}{bytes}/$total_bytes)*100 > $self->{MinPie}) { @@ -2756,11 +2771,21 @@ sub _print_top_domain_stat $data{'others'} += $perdomain{$dom}{bytes}; } } - $data{'others'} = $data{'others'}; $title = "$Translate{'Domain_graph_bytes_title'} $stat_date"; my $domain_bytes = $self->flotr2_piegraph(1, 'domain_bytes', $title, $Translate{'Domains_graph'}, '', %data); - print $out qq{
$domain_hits$domain2_hits
$domain_bytes
}; + %data = (); + foreach my $dom (keys %domain_stat) { + if (($domain_stat{$dom}{bytes}/$total_bytes)*100 > $self->{MinPie}) { + $data{$dom} = $domain_stat{$dom}{bytes}; + } else { + $data{'others'} += $domain_stat{$dom}{bytes}; + } + } + $title2 = "$Translate{'Second_domain_graph_bytes_title'} $stat_date"; + my $domain2_bytes = $self->flotr2_piegraph(1, 'second_domain_bytes', $title2, $Translate{'Domains_graph'}, '', %data); + print $out qq{$domain_bytes$domain2_bytes}; $domain_bytes = ''; + $domain2_bytes = ''; %data = (); } else { print $out "

$t1 $stat_date

\n"; diff --git a/lang/en_US.txt b/lang/en_US.txt index c83ab28..9375df6 100644 --- a/lang/en_US.txt +++ b/lang/en_US.txt @@ -92,6 +92,8 @@ Domain_Duration_title Top %d Domain duration on Domain_number Number of domain Domain_graph_hits_title Domain Hits Statistics on Domain_graph_bytes_title Domain Bytes Statistiques on +Second_domain_graph_hits_title Second level Hits Statistics on +Second_domain_graph_bytes_title Second level Bytes Statistiques on First_visit First visit Last_visit Last visit Globals_Statistics Globals Statistics diff --git a/lang/fr_FR.txt b/lang/fr_FR.txt index 53fc88b..0bf1d4e 100644 --- a/lang/fr_FR.txt +++ b/lang/fr_FR.txt @@ -92,6 +92,8 @@ Domain_Duration_title Top %d des domaines par dur Domain_number Nombre de domaines Domain_graph_hits_title Statistiques des requêtes par domaines pour Domain_graph_bytes_title Statistiques des transferts par domaines pour +Second_domain_graph_hits_title Statistiques des requêtes par sous-domaines pour +Second_domain_graph_bytes_title Statistiques des transferts par sous-domaines pour First_visit Première visite Last_visit Dernière visite Globals_Statistics Statistiques Globales diff --git a/resources/squidanalyzer.css b/resources/squidanalyzer.css index 306a290..455046c 100644 --- a/resources/squidanalyzer.css +++ b/resources/squidanalyzer.css @@ -60,7 +60,7 @@ table.stata td a:hover { color: #76add2; } /* Graphs */ /**************/ -#code_requests, #code_bytes, #network_hits, #network_bytes, #user_hits, #user_bytes, #domain_hits, #domain_bytes { +#code_requests, #code_bytes, #network_hits, #network_bytes, #user_hits, #user_bytes, #domain_hits, #second_domain_hits, #domain_bytes, #second_domain_bytes { width : 550px; height: 300px; background:#F3F2ED;