module OpenTelemetry::Instrumentation::ActiveSupport
Contains the OpenTelemetry
instrumentation for the ActiveSupport
gem
rubocop:disable Style/Documentation
Constants
- VERSION
Public Class Methods
subscribe( tracer, pattern, notification_payload_transform = nil, disallowed_notification_payload_keys = [] )
click to toggle source
A very hacky way to make sure that OpenTelemetry::Instrumentation::ActiveSupport::SpanSubscriber
gets invoked first
# File lib/opentelemetry/instrumentation/active_support/span_subscriber.rb, line 18 def self.subscribe( # rubocop:disable Metrics/AbcSize tracer, pattern, notification_payload_transform = nil, disallowed_notification_payload_keys = [] ) subscriber = OpenTelemetry::Instrumentation::ActiveSupport::SpanSubscriber.new( name: pattern, tracer: tracer, notification_payload_transform: notification_payload_transform, disallowed_notification_payload_keys: disallowed_notification_payload_keys ) subscriber_object = ::ActiveSupport::Notifications.subscribe(pattern, subscriber) ::ActiveSupport::Notifications.notifier.synchronize do if ::Rails::VERSION::MAJOR >= 6 s = ::ActiveSupport::Notifications.notifier.instance_variable_get(:@string_subscribers)[pattern].pop ::ActiveSupport::Notifications.notifier.instance_variable_get(:@string_subscribers)[pattern].unshift(s) else s = ::ActiveSupport::Notifications.notifier.instance_variable_get(:@subscribers).pop ::ActiveSupport::Notifications.notifier.instance_variable_get(:@subscribers).unshift(s) end end subscriber_object end