Class: Async::App::WebServer::MetricsApp
- Inherits:
-
Object
- Object
- Async::App::WebServer::MetricsApp
- Includes:
- Component
- Defined in:
- lib/async/app/web_server/metrics_app.rb
Defined Under Namespace
Classes: Serializer, Store
Constant Summary collapse
- PATHS =
["/metrics", "/metrics/"].freeze
Instance Method Summary collapse
- #call ⇒ Object
- #can_handle?(request) ⇒ Boolean
-
#initialize(metrics_prefix:) ⇒ MetricsApp
constructor
A new instance of MetricsApp.
Methods included from Component
Constructor Details
#initialize(metrics_prefix:) ⇒ MetricsApp
Returns a new instance of MetricsApp.
8 9 10 11 12 13 14 15 |
# File 'lib/async/app/web_server/metrics_app.rb', line 8 def initialize(metrics_prefix:) store = Store.new @serializer = Serializer.new(prefix: metrics_prefix, store:) bus.subscribe("metrics.updated") do |metrics| metrics.each { store.set(_1, **_2) } end end |
Instance Method Details
#call ⇒ Object
18 |
# File 'lib/async/app/web_server/metrics_app.rb', line 18 def call(*) = [200, {}, @serializer.serialize] |
#can_handle?(request) ⇒ Boolean
17 |
# File 'lib/async/app/web_server/metrics_app.rb', line 17 def can_handle?(request) = PATHS.include?(request.path) |