4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/appsignal/hooks/shoryuken.rb', line 4
def call(worker_instance, queue, sqs_msg, body)
metadata = {
:queue => queue
}
exclude_keys = [ :job_class, :queue_name, :arguments ]
metadata.merge!(body.reject{ |key| exclude_keys.member?(key.to_sym) })
metadata.merge!(sqs_msg.attributes)
options = {
:class => body['job_class'],
:method => 'perform',
:metadata => metadata
}
options[:params] = body['arguments'] if body.key?('arguments')
options[:queue_start] = Time.at(sqs_msg.attributes['SentTimestamp'].to_i / 1000) if sqs_msg.attributes.key?('SentTimestamp')
Appsignal.monitor_transaction('perform_job.shoryuken', options) do
yield
end
end
|