Skip to content

Instantly share code, notes, and snippets.

@paulbellamy
Forked from bjpirt/bucket.rb
Created May 2, 2012 16:23
Show Gist options
  • Save paulbellamy/2577931 to your computer and use it in GitHub Desktop.
Save paulbellamy/2577931 to your computer and use it in GitHub Desktop.
Quick bucketing of PG logs
#!/usr/bin/env ruby
module Enumerable
# sum of an array of numbers
def sum
return self.inject(0){|acc,i|acc +i}
end
# average of an array of numbers
def average
return self.sum/self.length.to_f
end
def sample_variance
avg=self.average
sum=self.inject(0){|acc,i|acc +(i-avg)**2}
return(1/self.length.to_f*sum)
end
# standard deviation of an array of numbers
def standard_deviation
return Math.sqrt(self.sample_variance)
end
end
outputs = {}
STDIN.each_line do |line|
data = line.gsub(';', '').split(' ')
outputs[data[1].to_i] = [] unless outputs[data[1].to_i]
outputs[data[1].to_i] << data[0].to_f
end
outputs.keys.sort.each do |k|
v = outputs[k]
puts k
puts " Min: #{v.min}"
puts " Avg: #{v.average}"
puts " Max: #{v.max}"
puts " SDV: #{v.standard_deviation}
end
cat pglog_oldskool | grep "SELECT \* " | cut -d " " -f 7,30 | ./bucket.rb
@sim0nf
Copy link

sim0nf commented May 3, 2012

DS ID Mod 23

cosm@dbfun1:~$ cat pglog_mod23 | grep "SELECT * " | cut -d " " -f 7,30 | ./bucket.rb
1
Min: 10.979
Avg: 386.369182714494
Max: 2986.614
SDV: 452.576791512082
3
Min: 10.64
Avg: 310.595106024616
Max: 2028.114
SDV: 331.668643827539
7
Min: 10.74
Avg: 994.624
Max: 4396.563
SDV: 851.714746747831
10
Min: 10.348
Avg: 204.693742038217
Max: 1088.588
SDV: 175.522749733548

@sim0nf
Copy link

sim0nf commented May 3, 2012

DS ID Mod 10

cosm@dbfun1:~$ cat pglog_dsidmod | grep "SELECT * " | cut -d " " -f 7,30 | ./bucket.rb
1
Min: 6.513
Avg: 610.452147472204
Max: 3522.191
SDV: 693.578756776515
3
Min: 6.299
Avg: 476.082501403585
Max: 2003.337
SDV: 492.663970770051
7
Min: 6.316
Avg: 1080.75604513889
Max: 2990.404
SDV: 808.373659920346
10
Min: 6.446
Avg: 181.532417197452
Max: 554.524
SDV: 119.950128016387

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment