Module: PGMQ::Client::Metrics

Included in:
PGMQ::Client
Defined in:
lib/pgmq/client/metrics.rb

Overview

Queue metrics and monitoring

This module handles retrieving queue metrics such as queue length, message age, and total message counts.

Instance Method Summary collapse

Instance Method Details

#metrics(queue_name) ⇒ PGMQ::Metrics

Gets metrics for a specific queue

Examples:

metrics = client.metrics("orders")
puts "Queue length: #{metrics.queue_length}"
puts "Oldest message: #{metrics.oldest_msg_age_sec}s"

Parameters:

  • queue_name (String)

    name of the queue

Returns:



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pgmq/client/metrics.rb', line 19

def metrics(queue_name)
  validate_queue_name!(queue_name)

  result = with_connection do |conn|
    conn.exec_params("SELECT * FROM pgmq.metrics($1::text)", [queue_name])
  end

  return nil if result.ntuples.zero?

  PGMQ::Metrics.new(result[0])
end

#metrics_allArray<PGMQ::Metrics>

Gets metrics for all queues

Examples:

all_metrics = client.metrics_all
all_metrics.each do |m|
  puts "#{m.queue_name}: #{m.queue_length} messages"
end

Returns:



40
41
42
43
44
45
46
# File 'lib/pgmq/client/metrics.rb', line 40

def metrics_all
  result = with_connection do |conn|
    conn.exec("SELECT * FROM pgmq.metrics_all()")
  end

  result.map { |row| PGMQ::Metrics.new(row) }
end