Class: LogrageRailsRequestQueuing::RequestQueueing

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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_msObject (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_rawObject (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_atObject (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_atObject



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