Today I am gonna have a brief introduction about active support instrumentation. We will start from what it really is and how to use it.
Instrumentation provide a HOOK when certain events happen inside rails. Moreover, You can publish your own custom event if you want :)
How it works
It's really easy. All you need to do it listen to event that rails publish.
Below is the activity logs feature that I implement in my current project
I subscribe to
process_action.action_controller
(rails specific event)I capture some information and pass to sidekiq's worker to perform some task
# config/initializers/my_event.rb
ActiveSupport::Notifications.subscribe "process_action.action_controller" do |name, started, finished, unique_id, data|
args = data.slice(:controller, :action, :format, :method, :path, :status)
args[:payload] = data[:params].except(:action, :controller)
ActivityLogsWorker.perform_async args
end
Notice that
data is a hash with the following keys
It's simple as that.
for more detail read more on rails official website
Top comments (0)