Module: Rack::Timeout::Rollbar

Defined in:
lib/rack/timeout/rollbar.rb

Overview

Groups timeout exceptions in rollbar by exception class, http method, and url.

Usage: after requiring rollbar (say, in your rollbar initializer file), call:

require "rack/timeout/rollbar"

This is somewhat experimental and very lightly tested.

Ruby 2.0 is required as we use ‘Module.prepend`.

Instance Method Summary collapse

Instance Method Details

#build_payload(level, message, exception, extra) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rack/timeout/rollbar.rb', line 14

def build_payload(level, message, exception, extra)
  payload = super(level, message, exception, extra)

  return payload unless exception.is_a?(::Rack::Timeout::ExceptionWithEnv) \
                     && payload.respond_to?(:[])                           \
                     && payload.respond_to?(:[]=)

  data = payload["data"]
  return payload unless data.respond_to?(:[]=)

  request = ::Rack::Request.new(exception.env)
  payload = payload.dup
  data    = data.dup
  payload["data"] = data

  data["fingerprint"] = [
    exception.class.name,
    request.request_method,
    request.fullpath
    ].join(" ")

  return payload
end