From cd98231c427b6d38fc0cfb25bce15a7cb291a832 Mon Sep 17 00:00:00 2001 From: Mathias Meyer Date: Tue, 16 Apr 2013 19:47:20 +0200 Subject: [PATCH] Add Middle ware for tracking metriks. --- lib/travis/api/app/middleware/metriks.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/travis/api/app/middleware/metriks.rb 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