module Notifications

Ruby on Rails 3.0.20

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Notifications provides an instrumentation API for Ruby. To instrument an action in Ruby you just need to do:

ActiveSupport::Notifications.instrument(:render, :extra => :information) do
  render :text => "Foo"
end

You can consume those events and the information they provide by registering a log subscriber. For instance, let’s store all instrumented events in an array:

@events = []

ActiveSupport::Notifications.subscribe do |*args|
  @events << ActiveSupport::Notifications::Event.new(*args)
end

ActiveSupport::Notifications.instrument(:render, :extra => :information) do
  render :text => "Foo"
end

event = @events.first
event.name      # => :render
event.duration  # => 10 (in milliseconds)
event.payload   # => { :extra => :information }

When subscribing to Notifications, you can pass a pattern, to only consume events that match the pattern:

ActiveSupport::Notifications.subscribe(/render/) do |event|
  @render_events << event
end

Notifications ships with a queue implementation that consumes and publish events to log subscribers in a thread. You can use any queue implementation you want.

Namespace

Classes

Attributes

Methods (defined here)

Type at least 2 characters to search.

↑↓ navigate · open · esc close