Sha256: e314d80f2d96e27985c54b22d2baee032568c5a1b1a9e17a6e02a56794a4a5ba
Contents?: true
Size: 1.51 KB
Versions: 46
Compression:
Stored size: 1.51 KB
Contents
module Appsignal class Hooks class SidekiqPlugin include Appsignal::Hooks::Helpers def job_keys @job_keys ||= Set.new(%w( class args retried_at failed_at error_message error_class backtrace error_backtrace enqueued_at retry jid retry created_at wrapped )) end def call(worker, item, queue) if item['class'] == 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper' params = format_args(item['args'].first['arguments']) else params = format_args(item['args']) end Appsignal.monitor_transaction( 'perform_job.sidekiq', :class => item['wrapped'] || item['class'], :method => 'perform', :metadata => formatted_metadata(item), :params => params, :queue_start => item['enqueued_at'] ) do yield end end def formatted_metadata(item) {}.tap do |hsh| item.each do |key, val| hsh[key] = truncate(string_or_inspect(val)) unless job_keys.include?(key) end end end end class SidekiqHook < Appsignal::Hooks::Hook register :sidekiq def dependencies_present? defined?(::Sidekiq) end def install ::Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add Appsignal::Hooks::SidekiqPlugin end end end end end end
Version data entries
46 entries across 46 versions & 1 rubygems