Class: Appsignal::Hooks::SidekiqPlugin
- Inherits:
-
Object
- Object
- Appsignal::Hooks::SidekiqPlugin
- Defined in:
- lib/appsignal/hooks/sidekiq.rb
Instance Method Summary collapse
- #call(worker, item, queue) ⇒ Object
- #format_args(args) ⇒ Object
- #formatted_metadata(item) ⇒ Object
- #job_keys ⇒ Object
- #string_or_inspect(string_or_other) ⇒ Object
- #truncate(text) ⇒ Object
Instance Method Details
#call(worker, item, queue) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 12 def call(worker, item, queue) Appsignal.monitor_transaction( 'perform_job.sidekiq', :class => item['wrapped'] || item['class'], :method => 'perform', :metadata => (item), :params => format_args(item['args']), :queue_start => item['enqueued_at'] ) do yield end end |
#format_args(args) ⇒ Object
41 42 43 44 45 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 41 def format_args(args) args.map do |arg| truncate(string_or_inspect(arg)) end end |
#formatted_metadata(item) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 25 def (item) {}.tap do |hsh| item.each do |key, val| hsh[key] = truncate(string_or_inspect(val)) unless job_keys.include?(key) end end end |
#job_keys ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 4 def job_keys @job_keys ||= Set.new(%w( class args retried_at failed_at error_message error_class backtrace error_backtrace enqueued_at retry )) end |
#string_or_inspect(string_or_other) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 33 def string_or_inspect(string_or_other) if string_or_other.is_a?(String) string_or_other else string_or_other.inspect end end |
#truncate(text) ⇒ Object
47 48 49 |
# File 'lib/appsignal/hooks/sidekiq.rb', line 47 def truncate(text) text.size > 200 ? "#{text[0...197]}..." : text end |