@@ -27,7 +27,7 @@ def self.subscribe(
2727 span_name_formatter : nil
2828 )
2929 subscriber = OpenTelemetry ::Instrumentation ::ActiveSupport ::SpanSubscriber . new (
30- name : pattern ,
30+ pattern : pattern ,
3131 tracer : tracer ,
3232 notification_payload_transform : notification_payload_transform ,
3333 disallowed_notification_payload_keys : disallowed_notification_payload_keys ,
@@ -64,17 +64,18 @@ class SpanSubscriber
6464 ALWAYS_VALID_PAYLOAD_TYPES = [ TrueClass , FalseClass , String , Numeric , Symbol ] . freeze
6565
6666 # rubocop:disable Metrics/ParameterLists
67- def initialize ( name :, tracer :, notification_payload_transform : nil , disallowed_notification_payload_keys : nil , kind : nil , span_name_formatter : nil )
68- @span_name = safe_span_name_for ( span_name_formatter , name ) . dup . freeze
67+ def initialize ( pattern :, tracer :, notification_payload_transform : nil , disallowed_notification_payload_keys : nil , kind : nil , span_name_formatter : nil )
68+ @pattern = pattern
6969 @tracer = tracer
7070 @notification_payload_transform = notification_payload_transform
7171 @disallowed_notification_payload_keys = Array ( disallowed_notification_payload_keys )
7272 @kind = kind || :internal
73+ @span_name_formatter = span_name_formatter
7374 end
7475 # rubocop:enable Metrics/ParameterLists
7576
7677 def start ( name , id , payload )
77- span = @tracer . start_span ( @span_name , kind : @kind )
78+ span = @tracer . start_span ( safe_span_name_for ( name ) , kind : @kind )
7879 token = OpenTelemetry ::Context . attach (
7980 OpenTelemetry ::Trace . context_with_span ( span )
8081 )
@@ -140,8 +141,8 @@ def sanitized_value(value)
140141 # Helper method to try an shield the span name formatter from errors
141142 #
142143 # It wraps the user supplied formatter in a rescue block and returns the original name if a StandardError is raised by the formatter
143- def safe_span_name_for ( span_name_formatter , name )
144- span_name_formatter &.call ( name ) || name
144+ def safe_span_name_for ( name )
145+ @ span_name_formatter &.call ( name ) || name
145146 rescue StandardError => e
146147 OpenTelemetry . handle_error ( exception : e , message : 'Error calling span_name_formatter. Using default span name.' )
147148 name
0 commit comments