Class: Promenade::Client::Rack::QueueTimeDuration
- Inherits:
-
Object
- Object
- Promenade::Client::Rack::QueueTimeDuration
- Defined in:
- lib/promenade/client/rack/queue_time_duration.rb
Constant Summary collapse
- REQUEST_START_HEADER =
"HTTP_X_REQUEST_START".freeze
- QUEUE_START_HEADER =
"HTTP_X_QUEUE_START".freeze
- HEADER_VALUE_MATCHER =
/^(?:t=)(?<timestamp>\d{10}(?:\.\d+))$/
Instance Method Summary collapse
-
#initialize(env:, request_received_time: Time.now.utc) ⇒ QueueTimeDuration
constructor
A new instance of QueueTimeDuration.
- #queue_time_seconds ⇒ Object
Constructor Details
#initialize(env:, request_received_time: Time.now.utc) ⇒ QueueTimeDuration
Returns a new instance of QueueTimeDuration.
10 11 12 13 14 |
# File 'lib/promenade/client/rack/queue_time_duration.rb', line 10 def initialize(env:, request_received_time: Time.now.utc) @request_enqueued_time = request_enqueued_time_from(env) @request_received_time = request_received_time.utc.to_f freeze end |
Instance Method Details
#queue_time_seconds ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/promenade/client/rack/queue_time_duration.rb', line 16 def queue_time_seconds # Enqueued time could not be parsed from headers return unless request_enqueued_time # A negative queue time is not valid return if queue_time < 0 queue_time.round(3) end |