Module: NetuitiveRailsAgent::RequestDataHook
- Includes:
- ControllerUtils
- Defined in:
- lib/netuitive_rails_agent/request_data.rb
Constant Summary
collapse
[
'HTTP_X_REQUEST_START'.freeze,
'HTTP_X_QUEUE_START'.freeze,
'HTTP_X_MIDDLEWARE_START'.freeze
].freeze
Class Method Summary
collapse
Instance Method Summary
collapse
#netuitive_action_name, #netuitive_controller_name, #netuitive_request_uri
Class Method Details
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/netuitive_rails_agent/request_data.rb', line 11
def self.()
if
start_time = nil
.each do ||
= []
next if .nil?
match = /\d+(\.\d{1,2})?/.match()
if match.nil?
NetuitiveRailsAgent::NetuitiveLogger.log.error "queue time header value #{header} is not recognized"
next
end
= match.to_s.to_f / NetuitiveRailsAgent::ConfigManager.queue_time_divisor
NetuitiveRailsAgent::NetuitiveLogger.log.debug "queue header_time: #{header_time}"
start_time = start_time.nil? || < start_time ? : start_time
NetuitiveRailsAgent::NetuitiveLogger.log.debug "queue start_time: #{start_time}"
end
return (Time.now.to_f - start_time) * 1000.0
end
nil
end
|
Instance Method Details
#netuitive_request_hook ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/netuitive_rails_agent/request_data.rb', line 32
def netuitive_request_hook
return unless request
begin
queue_time = NetuitiveRailsAgent::RequestDataHook.(request.)
NetuitiveRailsAgent::NetuitiveLogger.log.debug "queue_time: #{queue_time}"
NetuitiveRailsAgent::NetuitiveLogger.log.debug 'sending queue_time metrics'
NetuitiveRubyAPI.add_sample('action_controller.request.queue_time', queue_time)
return unless netuitive_controller_name
NetuitiveRailsAgent::NetuitiveLogger.log.debug "sending queue_time metrics with netuitive_controller_name #{netuitive_controller_name}"
NetuitiveRubyAPI.add_sample("action_controller.#{netuitive_controller_name}.request.queue_time", queue_time)
return unless netuitive_action_name
NetuitiveRailsAgent::NetuitiveLogger.log.debug "sending queue_time metrics with netuitive_action_name #{netuitive_action_name}"
NetuitiveRubyAPI.add_sample("action_controller.#{netuitive_controller_name}.#{netuitive_action_name}.request.queue_time", queue_time)
rescue => e
NetuitiveRailsAgent::NetuitiveLogger.log.error "exception during request tracking: message:#{e.message} backtrace:#{e.backtrace}"
end
end
|