Module: Pgbus::Instrumentation

Defined in:
lib/pgbus/instrumentation.rb

Overview

Lightweight instrumentation via ActiveSupport::Notifications.

All events are prefixed with “pgbus.” and carry timing information automatically when used with the block form of AS::Notifications.instrument.

Events emitted:

pgbus.client.send_message   — single message enqueue
pgbus.client.send_batch     — batch enqueue
pgbus.client.read_batch     — batch dequeue
pgbus.client.read_message   — single message dequeue
pgbus.executor.execute      — full job execution (deserialize + perform + archive)
pgbus.serializer.serialize  — job/event serialization
pgbus.serializer.deserialize — job/event deserialization

Class Method Summary collapse

Class Method Details

.instrument(event, payload = {}, &block) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/pgbus/instrumentation.rb', line 21

def instrument(event, payload = {}, &block)
  if defined?(ActiveSupport::Notifications)
    ActiveSupport::Notifications.instrument(event, payload, &block)
  elsif block
    yield payload
  end
end