diff --git a/lib/travis/api/app/middleware/metriks.rb b/lib/travis/api/app/middleware/metriks.rb new file mode 100644 index 00000000..a1322ece --- /dev/null +++ b/lib/travis/api/app/middleware/metriks.rb @@ -0,0 +1,22 @@ +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