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
|