Class: RailsHealthChecks::PrometheusFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_health_checks/prometheus_formatter.rb

Constant Summary collapse

STATUS_CODES =
{ "ok" => 0, "degraded" => 1, "critical" => 2 }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ PrometheusFormatter

Returns a new instance of PrometheusFormatter.



7
8
9
# File 'lib/rails_health_checks/prometheus_formatter.rb', line 7

def initialize(results)
  @results = results
end

Instance Method Details

#to_textObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rails_health_checks/prometheus_formatter.rb', line 11

def to_text
  lines = []

  lines << "# HELP rails_health_check_status Health check status (0=ok, 1=degraded, 2=critical)"
  lines << "# TYPE rails_health_check_status gauge"
  @results.each { |name, check| lines << "rails_health_check_status{check=\"#{name}\"} #{STATUS_CODES[check.status]}" }

  lines << ""
  lines << "# HELP rails_health_check_latency_ms Health check latency in milliseconds"
  lines << "# TYPE rails_health_check_latency_ms gauge"
  @results.each do |name, check|
    lines << "rails_health_check_latency_ms{check=\"#{name}\"} #{check.latency_ms}" if check.latency_ms
  end

  lines.join("\n") + "\n"
end