Skip to content

Instantly share code, notes, and snippets.

@xeromorph
Created December 19, 2011 03:26
Show Gist options
  • Select an option

  • Save xeromorph/1495252 to your computer and use it in GitHub Desktop.

Select an option

Save xeromorph/1495252 to your computer and use it in GitHub Desktop.
apache access stats [ruby]
require 'date'
dates = []
lapses = []
File.open('/var/log/apache2/pogoda/access.log.1').each do |line|
next if line =~ /\.(js|css|gif|png|jpe?g)/i
dates.push(DateTime.strptime(line[/(\d+\/\w{3}\/\d{4}(:\d{2}){3})/,1], '%d/%b/%Y:%k:%M:%S').to_time)
end
dates.each_cons(2) do |pair|
lapses.push(pair[1]-pair[0])
end
sum = lapses.inject(0){|acc,i| acc+i}
len = lapses.length.to_f
avg = sum / len
svar = 1/len*lapses.inject(0){|acc,i|acc+(i-avg)**2}
std = Math.sqrt(svar)
puts "avg: #{avg}, std: #{std}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment