27 lines
800 B
Ruby
27 lines
800 B
Ruby
require 'travis/api/app'
|
|
require 'skylight'
|
|
require 'skylight/probes/tilt'
|
|
require 'skylight/probes/redis'
|
|
|
|
class Travis::Api::App
|
|
class Middleware
|
|
class Skylight < Middleware
|
|
set(:setup) { ::Skylight.start! }
|
|
use ::Skylight::Middleware
|
|
|
|
after do
|
|
instrumenter = ::Skylight::Instrumenter.instance
|
|
trace = instrumenter.current_trace if instrumenter
|
|
trace.endpoint = "#{request.request_method} #{endpoint || '???'}" if trace
|
|
end
|
|
|
|
def endpoint
|
|
return @endpoint if defined? @endpoint and @endpoint
|
|
return unless headers['X-Pattern'].present? and headers['X-Endpoint'].present?
|
|
@endpoint = Object.const_get(headers['X-Endpoint']).prefix + headers['X-Pattern']
|
|
rescue NameError
|
|
end
|
|
end
|
|
end
|
|
end
|