Class: Prometheus::Middleware::Collector

Inherits:
Object
  • Object
show all
Defined in:
lib/prometheus/middleware/collector.rb

Overview

Collector is a Rack middleware that provides a sample implementation of a HTTP tracer.

By default metrics are registered on the global registry. Set the ‘:registry` option to use a custom registry.

By default metrics all have the prefix “http_server”. Set ‘:metrics_prefix` to something else if you like.

The request counter metric is broken down by code, method and path. The request duration metric is broken down by method and path.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Collector.



22
23
24
25
26
27
28
29
# File 'lib/prometheus/middleware/collector.rb', line 22

def initialize(app, options = {})
  @app = app
  @registry = options[:registry] || Client.registry
  @metrics_prefix = options[:metrics_prefix] || 'http_server'

  init_request_metrics
  init_exception_metrics
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



20
21
22
# File 'lib/prometheus/middleware/collector.rb', line 20

def app
  @app
end

#registryObject (readonly)

Returns the value of attribute registry.



20
21
22
# File 'lib/prometheus/middleware/collector.rb', line 20

def registry
  @registry
end

Instance Method Details

#call(env) ⇒ Object

:nodoc:



31
32
33
# File 'lib/prometheus/middleware/collector.rb', line 31

def call(env) # :nodoc:
  trace(env) { @app.call(env) }
end