.PHONY: full full: ips_per_req_count.png requests_per_country.txt reqs_per_ip_distribution.txt reqs_per_second.png /var/log/nginx/access.log.1.rsuc: /var/log/nginx/access.log.1 jq -r .r $< | suc > $@ ips_per_req_count.png: /var/log/nginx/access.log.1.rsuc cols 1 < $< | suc | gnuplot -e 'set term pngcairo size 1920,1080 font "PragmataPro,10";set logscale xy 2;set xlabel "Request #";set ylabel "IPs";set xtics 2;set ytics 2;plot "/dev/stdin" using 2:1 with points pointtype 2 notitle' > $@ requests_per_country.txt: /var/log/nginx/access.log.1 jq -r .c < $< | suc -r > $@ reqs_per_ip_distribution.txt: /var/log/nginx/access.log.1.rsuc cols 1 < $< | statistik > $@ reqs_per_second.txt: /var/log/nginx/access.log.1 ruby -rjson -e 'h=Hash.new{|h,k|h[k]=[0,0]};ARGF.each{|l|j=JSON.parse(l);m=j["t"].split(":")[0..2].join(":");if j["r"].include?(".");then i=0;else i=1;end;h[m][i]+=1};h.sort.each{|k,v|puts "#{k}\t#{v[0]}\t#{v[1]}"}' < $< > $@ reqs_per_second.png: reqs_per_second.txt gnuplot -e 'set term pngcairo size 1920,1080 font "PragmataPro,10";set yrange [0:];set xdata time;set format x "%H:%M";set timefmt "%Y-%m-%dT%H:%M:%SZ";plot "reqs_per_second.txt" using 1:2 title "IPv4" with lines, "reqs_per_second.txt" using 1:3 title "IPv6" with lines' > $@