Class: RequestQueueTime::Middleware
- Inherits:
-
Object
- Object
- RequestQueueTime::Middleware
- Defined in:
- lib/request_queue_time/middleware.rb,
lib/request_queue_time/middleware/version.rb
Defined Under Namespace
Classes: Metrics
Constant Summary collapse
- VERSION =
"0.2.0"
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(app) ⇒ Middleware
Returns a new instance of Middleware.
6 7 8 |
# File 'lib/request_queue_time/middleware.rb', line 6 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/request_queue_time/middleware.rb', line 10 def call(env) metrics = Metrics.new(env) AutoScalingMetrics::Reporter.start if ENV["ECS_SETUP"] unless metrics.ignore? = ["request_method:#{env["REQUEST_METHOD"]}"] ActiveSupport::Notifications.instrument("request_queue_time.timings", extra: { tags: , queue_time: metrics.queue_time, network_time: metrics.network_time }) env["request_queue_time"] = metrics.queue_time env["request_network_time"] = metrics.network_time if ENV["ECS_SETUP"] AutoScalingMetrics::Reporter.instance.track_request_queue_time(metrics.queue_time) end end @app.call(env) end |