Merge branch 'master' of https://github.com/travis-ci/travis-api
This commit is contained in:
commit
ea89ec125b
|
@ -64,6 +64,8 @@ module Travis::Api
|
|||
|
||||
def initialize
|
||||
@app = Rack::Builder.app do
|
||||
use(Rack::Config) { |env| env['metriks.request.start'] ||= Time.now.utc }
|
||||
|
||||
Rack::Utils::HTTP_STATUS_CODES[420] = "Enhance Your Calm"
|
||||
use Rack::Attack
|
||||
Rack::Attack.blacklist('block client requesting ruby builds') do |req|
|
||||
|
|
|
@ -7,10 +7,15 @@ class Travis::Api::App
|
|||
include Helpers::Accept
|
||||
|
||||
before do
|
||||
env['metriks.request.start'] = Time.now.utc
|
||||
env['metriks.request.start'] ||= Time.now.utc
|
||||
end
|
||||
|
||||
after do
|
||||
if queue_start = time(env['HTTP_X_QUEUE_START']) || time(env['HTTP_X_REQUEST_START'])
|
||||
time = env['metriks.request.start'] - queue_start
|
||||
::Metriks.timer('api.request_queue').update(time)
|
||||
end
|
||||
|
||||
if response.status < 400
|
||||
time = Time.now.utc - env['metriks.request.start']
|
||||
if headers['X-Pattern'].present? and headers['X-Endpoint'].present?
|
||||
|
@ -21,9 +26,17 @@ class Travis::Api::App
|
|||
end
|
||||
::Metriks.meter("api.request.#{request.request_method.downcase}").mark
|
||||
end
|
||||
|
||||
::Metriks.meter("api.request.status.#{response.status.to_s[0]}").mark
|
||||
::Metriks.meter("api.request.version.#{accept_version}").mark
|
||||
end
|
||||
|
||||
def time(value)
|
||||
value = value.to_f
|
||||
start = env['metriks.request.start'].to_f
|
||||
value /= 1000 while value > start
|
||||
Time.at(value) if value > 946684800
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user