travis-api/lib/travis/api/app/middleware/metriks.rb
2013-04-16 19:47:20 +02:00

23 lines
619 B
Ruby

require 'travis/api/app'
class Travis::Api::App
class Middleware
class Metriks < Middleware
before do
env['metriks.request.start'] = Time.now.utc
end
after do
if response.status < 400
time = Time.now.utc - env['metriks.request.start']
pattern = headers['X-Pattern'].gsub(/[:\/]/, ".")
metric = "api.request.endpoint.#{pattern}"
Metriks.timer(metric).update(time)
Metriks.meter("api.request.#{request.method}")
end
Metriks.meter("api.request.status.#{response.status.to_s[0]}")
end
end
end
end