Class: Bigcommerce::Prometheus::Servers::Puma::Controllers::BaseController

Inherits:
Object
  • Object
show all
Defined in:
lib/bigcommerce/prometheus/servers/puma/controllers/base_controller.rb

Overview

Base puma controller for prometheus metrics

Instance Method Summary collapse

Constructor Details

#initialize(request:, response:, server_metrics:, collector:, logger:, timeout: nil) ⇒ BaseController

Returns a new instance of BaseController.

Parameters:

  • request (Rack::Request)
  • response (Rack::Response)
  • (Bigcommerce::Prometheus::Servers::Puma::ServerMetrics)
  • collector (PrometheusExporter::Server::Collector)
  • logger (Logger)
  • timeout (Integer, nil) (defaults to: nil)

    scrape timeout in seconds; nil means no limit



35
36
37
38
39
40
41
42
# File 'lib/bigcommerce/prometheus/servers/puma/controllers/base_controller.rb', line 35

def initialize(request:, response:, server_metrics:, collector:, logger:, timeout: nil)
  @request = request
  @response = response
  @collector = collector
  @server_metrics = server_metrics
  @logger = logger
  @timeout = timeout
end

Instance Method Details

#handleObject



44
45
46
47
# File 'lib/bigcommerce/prometheus/servers/puma/controllers/base_controller.rb', line 44

def handle
  call
  @response.finish
end

#set_header(key, value) ⇒ Object

Parameters:

  • key (String)
  • value (String)


53
54
55
56
57
58
59
# File 'lib/bigcommerce/prometheus/servers/puma/controllers/base_controller.rb', line 53

def set_header(key, value)
  if @response.respond_to?(:add_header) # rack 2.0+
    @response.add_header(key.to_s, value.to_s)
  else
    @response[key.to_s] = value.to_s
  end
end