class Hanami::Events::CloudPubsub::Middleware::Prometheus
Middleware
used for logging useful information about an event
Constants
- LONG_RUNNING_JOB_RUNTIME_BUCKETS
Public Instance Methods
call(msg, **opts) { |**opts| ... }
click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/prometheus.rb, line 28 def call(msg, **opts) start = Process.clock_gettime(Process::CLOCK_MONOTONIC) status = :running begin ret = yield(**opts) if block_given? status = :succeeded ret rescue StandardError status = :failed raise end ensure record_metrics(msg, status, start) end
Private Instance Methods
record_metrics(msg, status, start)
click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/prometheus.rb, line 46 def record_metrics(msg, status, start) elapsed = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - start).round(3) sub = msg.subscription.subscriber.subscription_name event_name = msg.attributes['event_name'] labels = { event_name: event_name, subscription: sub, status: status } Yabeda.received_pubsub_events.increment(labels, by: 1) Yabeda.subscriber_runtime.measure(labels, elapsed) rescue StandardError # ok end