95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb', line 95
def process_action(*args)
payload = {
controller: self.class,
action: action_name,
env: request.env,
headers: {
request_exception: request.['action_dispatch.exception']
},
tracing_context: {}
}
begin
Instrumentation.start_processing(payload)
result = super(*args)
status = datadog_response_status
payload[:status] = status unless status.nil?
result
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
raise e
end
ensure
Instrumentation.finish_processing(payload)
end
|