Class: LogrageRailsRequestQueuing::RequestQueueing
- Inherits:
-
Object
- Object
- LogrageRailsRequestQueuing::RequestQueueing
- Defined in:
- lib/lograge_rails_request_queuing/request_queuing.rb
Constant Summary collapse
- REQUEST_START_HEADER =
'HTTP_X_REQUEST_START'- EARLIEST_REQUEST_DATE =
Time.new(2000)
Instance Attribute Summary collapse
-
#queued_ms ⇒ Object
readonly
How long was the request queued for, in milliseconds.
-
#request_queued_raw ⇒ Object
readonly
Returns the value of attribute request_queued_raw.
-
#request_started_at ⇒ Object
readonly
Returns the value of attribute request_started_at.
Instance Method Summary collapse
-
#initialize(env, request_started_at = Time.zone.now.to_f) ⇒ RequestQueueing
constructor
A new instance of RequestQueueing.
- #request_queued_at ⇒ Object
Constructor Details
#initialize(env, request_started_at = Time.zone.now.to_f) ⇒ RequestQueueing
12 13 14 15 16 |
# File 'lib/lograge_rails_request_queuing/request_queuing.rb', line 12 def initialize(env, request_started_at = Time.zone.now.to_f) @request_queued_raw = request_start_header(env) @request_started_at = request_started_at @queued_ms = calculate_queued_ms end |
Instance Attribute Details
#queued_ms ⇒ Object (readonly)
How long was the request queued for, in milliseconds
6 7 8 |
# File 'lib/lograge_rails_request_queuing/request_queuing.rb', line 6 def queued_ms @queued_ms end |
#request_queued_raw ⇒ Object (readonly)
Returns the value of attribute request_queued_raw.
7 8 9 |
# File 'lib/lograge_rails_request_queuing/request_queuing.rb', line 7 def request_queued_raw @request_queued_raw end |
#request_started_at ⇒ Object (readonly)
Returns the value of attribute request_started_at.
7 8 9 |
# File 'lib/lograge_rails_request_queuing/request_queuing.rb', line 7 def request_started_at @request_started_at end |
Instance Method Details
#request_queued_at ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/lograge_rails_request_queuing/request_queuing.rb', line 18 def request_queued_at return if request_queued_float.blank? @request_queued_at ||= begin [1000, 1].each do |divisor| adjusted = Time.zone.at(request_queued_float / divisor) return adjusted if adjusted > EARLIEST_REQUEST_DATE end end end |