class SidekiqPublisher::DatadogAPM::Subscriber

Public Class Methods

subscribe_to(pattern) click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 19
def self.subscribe_to(pattern)
  ActiveSupport::Notifications.subscribe(pattern, new)
end

Public Instance Methods

finish(_name, _id, payload) click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 23
def finish(_name, _id, payload)
  finish_span(payload)
end

Private Instance Methods

finish_span(payload) click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 38
def finish_span(payload)
  payload[:datadog_span]&.set_error(payload[:exception_object]) if payload.key?(:exception_object)
  payload[:datadog_span]&.finish
end
service() click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 43
def service
  SidekiqPublisher::DatadogAPM.service
end
start_primary_span(resource, payload) click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 34
def start_primary_span(resource, payload)
  start_span(OPERATION, payload, resource)
end
start_span(operation, payload, resource = nil) click to toggle source
# File lib/sidekiq_publisher/datadog_apm.rb, line 29
def start_span(operation, payload, resource = nil)
  resource ||= operation
  payload[:datadog_span] = Datadog.tracer.trace(operation, service: service, resource: resource)
end