ExceptionDog

Exception dog is a simple exception notifier gem that pushes exceptions out to Dotadog as metric events. You can set up rules within datadog to push new occurrences of the events into slack for instance, to have a reasonably good exception service.

Installation

Add this line to your application's Gemfile:

gem 'exception_dog'

Usage

exception_dog can be configured to use the datadog agent or the public cloud API. You can configure in an initialiser, for example: in a file config/initializers/exception_dog.rb

Datadog Agent Configuration Example

ExceptionDog.configure do |config|
  config.environment = ENV["RAILS_ENV"]
  config.notifier = Rails.env.test? ? "ExceptionDog::LogNotifier" : "ExceptionDog::AgentNotifier"
  config.agent_host = 'localhost'
  config.agent_port = 8125
  config.logger = Rails.logger
  config.service_name = Rails.application.class.parent.name.underscore
  config.ignore_exceptions = ["ActionController::RoutingError"]
end

Datadog API configuration

ExceptionDog.configure do |config|
  config.environment = ENV["RAILS_ENV"]
  config.api_key = ENV["DATA_DOG_API_KEY"]
  config.notifier = Rails.env.test? ? "ExceptionDog::LogNotifier" : "ExceptionDog::HttpNotifier"
  config.logger = Rails.logger
  config.service_name = Rails.application.class.parent.name.underscore
  config.ignore_exceptions = ["ActionController::RoutingError"]
end

Middleware Configuration You can set up a simple middleware to catch and report exceptions for Rack based apps.

require 'exception_dog/integrations/rack'
Rails.application.config.middleware.insert_after ActionDispatch::ShowExceptions, ExceptionDog::Integrations::Rack

Running tests

ruby -Ilib -Itest test/*.rb

License

The gem is available as open source under the terms of the MIT License.