class Evil::Metrics::Prometheus::Exporter
Public Class Methods
start_metrics_server!()
click to toggle source
# File lib/evil/metrics/prometheus/exporter.rb, line 10 def start_metrics_server! Thread.new do default_port = ENV.fetch("PORT", 9310) Rack::Handler::WEBrick.run( rack_app, Host: ENV["PROMETHEUS_EXPORTER_BIND"] || "0.0.0.0", Port: ENV.fetch("PROMETHEUS_EXPORTER_PORT", default_port), AccessLog: [], ) end end
Protected Class Methods
rack_app(exporter = self)
click to toggle source
# File lib/evil/metrics/prometheus/exporter.rb, line 24 def rack_app(exporter = self) Rack::Builder.new do use Rack::CommonLogger use Rack::ShowExceptions use exporter, registry: Evil::Metrics::Prometheus.registry run ->(_env) do [404, { "Content-Type" => "text/plain" }, ["Not Found\n"]] end end end
Public Instance Methods
call(env)
click to toggle source
Calls superclass method
# File lib/evil/metrics/prometheus/exporter.rb, line 36 def call(env) if env["REQUEST_PATH"].start_with?(path) Evil::Metrics.collectors.each(&:call) end super end