ankane/notable

Track notable requests and background jobs

455

stars

185

commits

Ruby

primary language

Apr 15, 2026

updated

README

Notable

Notable tracks notable requests and background jobs and stores them in your database. What makes a request or job notable? There are a number of default situations, but ultimately you decide what interests you.

By default, Notable tracks:

  • errors
  • 404s
  • slow requests and jobs
  • timeouts
  • validation failures
  • CSRF failures
  • unpermitted parameters
  • blocked and throttled requests

You can track custom notes as well.

:tangerine: Battle-tested at Instacart

Build Status

Installation

Add this line to your application’s Gemfile:

gem "notable"

And run:

rails generate notable:requests
rails generate notable:jobs
rails db:migrate

To explore the data, check out Blazer.

How It Works

A Notable::Request is created for:

A Notable::Job is created for:

  • errors
  • slow jobs
  • validation failures

Create a custom note inside a request or job with:

Notable.track("Note Type", "Optional extra info")

Customization

Disable tracking in certain environments

Notable.enabled = Rails.env.production?

Requests

Set slow threshold

Notable.slow_request_threshold = 5.seconds

Custom user method

Notable.user_method = lambda do |env|
  env["warden"].try(:user) || env["action_controller.instance"].try(:current_visit)
end

Custom track method

Notable.track_request_method = lambda do |data, env|
  Notable::Request.create!(data)
end

Skip tracking CSRF failures

skip_before_action :track_unverified_request

Anonymize IP addresses

Notable.mask_ips = true

Jobs

Set slow threshold

Notable.slow_job_threshold = 60.seconds

To set a threshold for a specific job, use:

class CustomJob < ApplicationJob
  def notable_slow_job_threshold
    5.minutes
  end
end

Custom track method

Notable.track_job_method = lambda do |data|
  Notable::Job.create!(data)
end

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/notable.git
cd notable
bundle install
bundle exec rake test

Contributors

ankane

183 commits

0duaht

1 commits

dhnaranjo

1 commits

ankane/notable

Track notable requests and background jobs

455

stars

185

commits

Ruby

primary language

Apr 15, 2026

updated

README

Notable

Notable tracks notable requests and background jobs and stores them in your database. What makes a request or job notable? There are a number of default situations, but ultimately you decide what interests you.

By default, Notable tracks:

  • errors
  • 404s
  • slow requests and jobs
  • timeouts
  • validation failures
  • CSRF failures
  • unpermitted parameters
  • blocked and throttled requests

You can track custom notes as well.

:tangerine: Battle-tested at Instacart

Build Status

Installation

Add this line to your application’s Gemfile:

gem "notable"

And run:

rails generate notable:requests
rails generate notable:jobs
rails db:migrate

To explore the data, check out Blazer.

How It Works

A Notable::Request is created for:

A Notable::Job is created for:

  • errors
  • slow jobs
  • validation failures

Create a custom note inside a request or job with:

Notable.track("Note Type", "Optional extra info")

Customization

Disable tracking in certain environments

Notable.enabled = Rails.env.production?

Requests

Set slow threshold

Notable.slow_request_threshold = 5.seconds

Custom user method

Notable.user_method = lambda do |env|
  env["warden"].try(:user) || env["action_controller.instance"].try(:current_visit)
end

Custom track method

Notable.track_request_method = lambda do |data, env|
  Notable::Request.create!(data)
end

Skip tracking CSRF failures

skip_before_action :track_unverified_request

Anonymize IP addresses

Notable.mask_ips = true

Jobs

Set slow threshold

Notable.slow_job_threshold = 60.seconds

To set a threshold for a specific job, use:

class CustomJob < ApplicationJob
  def notable_slow_job_threshold
    5.minutes
  end
end

Custom track method

Notable.track_job_method = lambda do |data|
  Notable::Job.create!(data)
end

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/notable.git
cd notable
bundle install
bundle exec rake test

Contributors

ankane

183 commits

0duaht

1 commits

dhnaranjo

1 commits

Languages

Ruby

100.0%