Class: Prometheus::Client::Rack::Exporter

Inherits:
Object
  • Object
show all
Defined in:
lib/prometheus/client/rack/exporter.rb

Constant Summary collapse

API_VERSION =
'0.0.2'
CONTENT_TYPE =
'application/json; schema="prometheus/telemetry"; version=' + API_VERSION
HEADERS =
{ 'Content-Type' => CONTENT_TYPE }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Exporter

Returns a new instance of Exporter.



13
14
15
16
17
# File 'lib/prometheus/client/rack/exporter.rb', line 13

def initialize(app, options = {})
  @app = app
  @registry = options[:registry] || Client.registry
  @path = options[:path] || '/metrics'
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



7
8
9
# File 'lib/prometheus/client/rack/exporter.rb', line 7

def app
  @app
end

#pathObject (readonly)

Returns the value of attribute path.



7
8
9
# File 'lib/prometheus/client/rack/exporter.rb', line 7

def path
  @path
end

#registryObject (readonly)

Returns the value of attribute registry.



7
8
9
# File 'lib/prometheus/client/rack/exporter.rb', line 7

def registry
  @registry
end

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/prometheus/client/rack/exporter.rb', line 19

def call(env)
  if env['PATH_INFO'] == @path
    metrics_response
  else
    @app.call(env)
  end
end