Class: Appsignal::Rack::Utils

Inherits:
Object
  • Object
show all
Defined in:
lib/appsignal/rack.rb

Class Method Summary collapse

Class Method Details

.queue_start_from(env) ⇒ Integer, NilClass

Fetch the queue start time from the request environment.

Parameters:

  • env (Hash)

    Request environment hash.

Returns:

  • (Integer, NilClass)

Since:

  • 3.11.0



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/appsignal/rack.rb', line 18

def self.queue_start_from(env)
  return unless env

  env_var = env["HTTP_X_QUEUE_START"] || env["HTTP_X_REQUEST_START"]
  return unless env_var

  cleaned_value = env_var.tr("^0-9", "")
  return if cleaned_value.empty?

  value = cleaned_value.to_i
  if value > 4_102_441_200_000
    # Value is in microseconds. Transform to milliseconds.
    value / 1_000
  elsif value < 946_681_200_000
    # Value is too low to be plausible
    nil
  else
    # Value is in milliseconds
    value
  end
end