From ee8d829a854f91e476167869cafe35c2d37bb314 Mon Sep 17 00:00:00 2001 From: Adam Cooke Date: Sun, 17 Mar 2024 09:29:22 +0000 Subject: [PATCH] feat(prometheus): add `postal_message_queue_latency` metric --- app/lib/message_dequeuer/initial_processor.rb | 10 ++++++++++ app/lib/worker/process.rb | 3 +++ 2 files changed, 13 insertions(+) diff --git a/app/lib/message_dequeuer/initial_processor.rb b/app/lib/message_dequeuer/initial_processor.rb index e23f80c..37ad9aa 100644 --- a/app/lib/message_dequeuer/initial_processor.rb +++ b/app/lib/message_dequeuer/initial_processor.rb @@ -3,6 +3,8 @@ module MessageDequeuer class InitialProcessor < Base + include HasPrometheusMetrics + attr_accessor :send_result def process @@ -10,6 +12,7 @@ module MessageDequeuer logger.info "starting message unqueue" begin catch_stops do + increment_dequeue_metric check_message_exists check_message_is_ready find_other_messages_for_batch @@ -28,6 +31,13 @@ module MessageDequeuer private + def increment_dequeue_metric + time_in_queue = Time.now.to_f - @queued_message.created_at.to_f + log "queue latency is #{time_in_queue}s" + observe_prometheus_histogram :postal_message_queue_latency, + time_in_queue + end + def check_message_exists return if @queued_message.message diff --git a/app/lib/worker/process.rb b/app/lib/worker/process.rb index 181d49d..277545b 100644 --- a/app/lib/worker/process.rb +++ b/app/lib/worker/process.rb @@ -288,6 +288,9 @@ module Worker register_prometheus_histogram :postal_worker_task_runtime, docstring: "The time taken to process tasks", labels: [:task] + + register_prometheus_histogram :postal_message_queue_latency, + docstring: "The length of time between a message being queued and being dequeued" end end