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