class RailsRiemannMiddleware::ExceptionNotification

Attributes

env[R]
event[R]
exception[R]
headers[R]

Public Class Methods

new(event, env, exception, options={}) click to toggle source
# File lib/rails_riemann_middleware/exception_notification.rb, line 8
def initialize(event, env, exception, options={})
  @event, @env, @exception = event, env, exception
  @headers = options.fetch(:headers, [])
end

Public Instance Methods

deliver() click to toggle source
# File lib/rails_riemann_middleware/exception_notification.rb, line 17
def deliver
  send
end
message() click to toggle source
# File lib/rails_riemann_middleware/exception_notification.rb, line 21
def message
  msg = {
    :host        => env['HTTP_HOST'],
    :service     => "#{event.app_prefix} exception".strip,
    :state       => 'error',
    :description => backtrace,
    :tags        => ["exception"]
  }
  # ap msg
  msg
end
send() click to toggle source
# File lib/rails_riemann_middleware/exception_notification.rb, line 13
def send
  event << message
end

Private Instance Methods

backtrace() click to toggle source
# File lib/rails_riemann_middleware/exception_notification.rb, line 35
def backtrace
  e = ["#{exception.to_s}"]
  e << "----------------------------------------"
  e += Headers.new(env, headers).to_a
  e << "----------------------------------------\n"
  e += exception.backtrace
  e.join("\n")[0..8000]
end