class QueueTimeStatsdReporter
Constants
- VERSION
Public Class Methods
new(app, statsd, metric_name, tags = [])
click to toggle source
# File lib/queue_time_statsd_reporter.rb, line 6 def initialize(app, statsd, metric_name, tags = []) @app = app @statsd = statsd @metric_name = metric_name @tags = tags end
Public Instance Methods
call(env)
click to toggle source
# File lib/queue_time_statsd_reporter.rb, line 13 def call(env) report_queue_time(env) @app.call(env) end
Private Instance Methods
report_queue_time(env)
click to toggle source
# File lib/queue_time_statsd_reporter.rb, line 20 def report_queue_time(env) return nil unless env.has_key?("HTTP_X_REQUEST_START") @statsd.gauge( @metric_name, seconds_since_request_start(env["HTTP_X_REQUEST_START"]), tags=@tags ) end
request_start_time_from_header(header_string)
click to toggle source
The header will be in the format t=1525393793.115
# File lib/queue_time_statsd_reporter.rb, line 34 def request_start_time_from_header(header_string) Float(header_string.strip[2..-1]) end
seconds_since_request_start(header)
click to toggle source
# File lib/queue_time_statsd_reporter.rb, line 29 def seconds_since_request_start(header) Float((Time.now - request_start_time_from_header(header))) end