Module: SolidQueueGuard::Metrics::Statsd

Defined in:
lib/solid_queue_guard/metrics/statsd.rb

Constant Summary collapse

STATUS_VALUES =
Exporter::STATUS_VALUES
CHECK_STATUS_VALUES =
Exporter::CHECK_STATUS_VALUES

Class Method Summary collapse

Class Method Details

.check_status_lines(report) ⇒ Object



26
27
28
29
30
31
# File 'lib/solid_queue_guard/metrics/statsd.rb', line 26

def check_status_lines(report)
  report.results.map do |result|
    value = CHECK_STATUS_VALUES.fetch(result.status)
    "solid_queue.guard.check_status:#{value}|g|##{result.id}"
  end
end

.export(report) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/solid_queue_guard/metrics/statsd.rb', line 8

def export(report)
  host = ENV.fetch('SOLID_QUEUE_GUARD_STATSD_HOST', '127.0.0.1')
  port = ENV.fetch('SOLID_QUEUE_GUARD_STATSD_PORT', 8125).to_i
  socket = UDPSocket.new
  metric_lines(report).each do |line|
    socket.send(line, 0, host, port)
  end
ensure
  socket&.close
end

.metric_lines(report) ⇒ Object



19
20
21
22
23
24
# File 'lib/solid_queue_guard/metrics/statsd.rb', line 19

def metric_lines(report)
  [
    "solid_queue.guard.overall_status:#{STATUS_VALUES.fetch(report.status)}|g",
    *check_status_lines(report)
  ]
end