module
v3.0.9 -
Show latest stable
-
0 notes
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (-1)
- 3.1.0 (0)
- 3.2.1 (38)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (23)
- 4.1.8 (0)
- 4.2.1 (3)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (1)
- 5.1.7 (2)
- 5.2.3 (0)
- 6.0.0 (11)
- 6.1.3.1 (17)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
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.