Method: ActiveTracker::Plugin::Request.statistics

Defined in:
lib/active_tracker/plugin/request.rb

.statisticsObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/active_tracker/plugin/request.rb', line 47

def self.statistics
  ret = []
  @requests = ActiveTracker::Model.all("Request")
  @requests = @requests.select {|e| e.log_at >= 60.minutes.ago}

  num_requests = @requests.count

  percentage_error = 0
  avg_milliseconds = 0
  if num_requests > 0
    num_errors = @requests.map {|r| r.tags[:status][0]}.select {|s| s=="4" || s=="5"}.count
    percentage_error = num_errors / @requests.count.to_f * 100.0
    avg_milliseconds = @requests.map {|r| r.tags[:duration].to_i}.sum / num_requests
  end


  ret << {plugin: self, label: "Requests/hour", value: num_requests}
  if percentage_error < 1.0
    ret << {plugin: self, label: "Error percentage", value: "%.1f%%" % percentage_error}
  else
    ret << {plugin: self, label: "Error percentage", value: "%.1f%%" % percentage_error, error: true}
  end
  ret << {plugin: self, label: "Avg time/request", value: "#{avg_milliseconds}ms"} if avg_milliseconds

  ret
end