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.job_completed — job archived successfully
pgbus.job_failed — job raised; carries :exception_object
pgbus.job_dead_lettered — job exceeded max_retries and was DLQ-routed
pgbus.event_processed — event handler succeeded
pgbus.event_failed — event handler raised; carries :exception_object
pgbus.stream.broadcast — stream broadcast (sync or deferred)
pgbus.outbox.publish — outbox row created
pgbus.recurring.enqueue — scheduler enqueued a due recurring task
pgbus.worker.recycle — worker hit a recycle threshold
pgbus.serializer.serialize — job/event serialization
pgbus.serializer.deserialize — job/event deserialization
Class Method Summary collapse
Class Method Details
.instrument(event, payload = {}, &block) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/pgbus/instrumentation.rb', line 30 def instrument(event, payload = {}, &block) if defined?(ActiveSupport::Notifications) ActiveSupport::Notifications.instrument(event, payload, &block) elsif block yield payload end end |