Module: NatsWork::Instrumentation::ActiveSupportCompatibility::ClassMethods
- Defined in:
- lib/natswork/instrumentation.rb
Instance Method Summary collapse
Instance Method Details
#instrument(event, payload = {}, &block) ⇒ Object
117 118 119 120 121 122 123 |
# File 'lib/natswork/instrumentation.rb', line 117 def instrument(event, payload = {}, &block) if defined?(ActiveSupport::Notifications) ActiveSupport::Notifications.instrument("natswork.#{event}", payload, &block) else NatsWork::Instrumentation.instrument(event, payload, &block) end end |
#subscribe(pattern, &block) ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/natswork/instrumentation.rb', line 125 def subscribe(pattern, &block) if defined?(ActiveSupport::Notifications) ActiveSupport::Notifications.subscribe(/^natswork\.#{pattern}/) do |name, started, finished, _id, payload| payload[:event] = name.sub('natswork.', '') payload[:started_at] = started payload[:finished_at] = finished payload[:duration] = (finished - started) * 1000 if finished && started block.call(payload) end else NatsWork::Instrumentation.subscribe(pattern, &block) end end |