diff --git a/Scripts/traffic_statistics.pl b/Scripts/traffic_statistics.pl deleted file mode 100644 --- a/Scripts/traffic_statistics.pl +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/perl -=About -This perl scripts generates statistics about the servers traffic consumption - -by virii -=cut -use HTTP::Tiny; -use IO::Socket; -use Chart::Clicker; -use Chart::Clicker::Context; -use Chart::Clicker::Data::DataSet; -use Chart::Clicker::Data::Marker; -use Chart::Clicker::Data::Series; -use Chart::Clicker::Renderer::Area; -use Geometry::Primitive::Rectangle; -use Graphics::Color::RGB; - -############### [Which year] ########################################### -$select_year = 2014; -$select_year = shift if $ARGV[0] =~ /^\d{4}$/; -############### [Create new statistics image] ########################## -$cc = Chart::Clicker->new(width => 1248, height => 800); -$ds = Chart::Clicker::Data::DataSet->new(); -@months = 1..12; -@series; -@traffix; -######################################################################## -@nodes = qw(relay exit); -############### [Servername gathering via Ennstatus API] ############### -foreach $node (@nodes) { - print "[+] Checking for $node\n"; - $gather_nodes = HTTP::Tiny->new->get('http://enn.lu/api/export/xml/' . $node) || die "[-] Cannot connect to $node API\n"; - @xml_response = split(/\n/,$gather_nodes->{content}); - foreach $xml_line (@xml_response) { - $counter++; - if ($xml_line =~ /\(\w+)\<\/server_name\>/i) { - $server_nick = $1; - if ($xml_response[$counter] =~ /\(\w+)\<\/server_status\>/i) { - push @servers, $server_nick if ($1 eq "Online"); # we want only those who are online - } - } - } -undef $counter; -} -####################### [Connect to each server] ####################### -foreach $server_name (@servers) { - print "[+] Checking '$server_name'\n"; - $server_response = HTTP::Tiny->new->get('http://' . $server_name . '.enn.lu/vnstat.xml'); - die "[-] '$server_name' Failed!\n" unless $server_response->{success}; - @xml_content = split(/\n/,$server_response->{content}); - foreach $xml_line (@xml_content) { - if ($xml_line =~ /\\\($select_year)\<\/year\>\(\d+)\<\/month\>\<\/date\>\(\d+)\<\/rx\>\(\d+)\<\/tx\>\<\/month\>/ig) { - ($id,$year,$month,$rx,$tx) = ($1,$2,$3,$4,$5,$6); - $rxtx = ($tx + $rx) * 10e-10; - $traffic = $1 if $rxtx =~ /^(\d+\.?\d{5})/; - push @traffix, $traffic; - } - } - for (scalar @traffix..11) { - push @traffix, 0 if $select_year == 2014; - unshift @traffix, 0 unless $select_year == 2014; - } - - $ds->add_to_series(Chart::Clicker::Data::Series->new( - keys => \@months, - values => [@traffix], - name => $server_name - )); - - undef @traffix; - -} - -$cc->add_to_datasets($ds); -$def = $cc->get_context('default'); -$def->range_axis->label('Tbit'); -$def->domain_axis->label('Month'); -$area = Chart::Clicker::Renderer::Area->new(opacity => .2); -$area->brush->width(3); -$def->renderer($area); -$def->range_axis->tick_values([qw(20 40 60 80 100 120 140 160 300)]); -$def->range_axis->format('%d'); -$def->domain_axis->ticks(11); -$def->domain_axis->tick_labels([qw(January February Mars April June July August September October November December)]); -$def->domain_axis->format('%d'); - -$cc->write_output('stats.png'); -