Module: Sinatra::Instrumentation

Defined in:
lib/instruments.rb

Instance Method Summary collapse

Instance Method Details

#instrument_routesObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/instruments.rb', line 39

def instrument_routes
  before do
    @start_request = Time.now
  end
  after do
    t = Integer((Time.now - @start_request)*1000)
    level = if t > HTTP_ERROR
      :error
    elsif t > HTTP_WARN
      :warning
    else
      :info
    end
    Instruments.write({
      :level => level,
      :lib => "sinatra",
      :action => "http-request",
      :route => @instrumented_route,
      :elapsed => t,
      :method => env["REQUEST_METHOD"].downcase,
      :status => response.status
    }.merge(params))
  end
end

#route(verb, action) ⇒ Object



34
35
36
37
# File 'lib/instruments.rb', line 34

def route(verb, action, *)
  condition {@instrumented_route = action}
  super
end