Module: SolidQueueGuard::Metrics::Prometheus

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

Constant Summary collapse

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

Class Method Summary collapse

Class Method Details

.export(report) ⇒ Object



10
11
12
13
14
# File 'lib/solid_queue_guard/metrics/prometheus.rb', line 10

def export(report)
  path = ENV.fetch('SOLID_QUEUE_GUARD_PROMETHEUS_FILE', Rails.root.join('tmp/solid_queue_guard.prom'))
  FileUtils.mkdir_p(File.dirname(path))
  File.write(path, render(report))
end

.render(report) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/solid_queue_guard/metrics/prometheus.rb', line 16

def render(report)
  lines = [
    '# TYPE solid_queue_guard_overall_status gauge',
    "solid_queue_guard_overall_status #{STATUS_VALUES.fetch(report.status)}",
    '# TYPE solid_queue_guard_check_status gauge'
  ]

  report.results.each do |result|
    value = CHECK_STATUS_VALUES.fetch(result.status)
    lines << "solid_queue_guard_check_status{check=\"#{result.id}\"} #{value}"
  end

  "#{lines.join("\n")}\n"
end