@@ -27,7 +27,7 @@ def self.subscribe(
27
27
span_name_formatter : nil
28
28
)
29
29
subscriber = OpenTelemetry ::Instrumentation ::ActiveSupport ::SpanSubscriber . new (
30
- name : pattern ,
30
+ pattern : pattern ,
31
31
tracer : tracer ,
32
32
notification_payload_transform : notification_payload_transform ,
33
33
disallowed_notification_payload_keys : disallowed_notification_payload_keys ,
@@ -64,17 +64,18 @@ class SpanSubscriber
64
64
ALWAYS_VALID_PAYLOAD_TYPES = [ TrueClass , FalseClass , String , Numeric , Symbol ] . freeze
65
65
66
66
# 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
69
69
@tracer = tracer
70
70
@notification_payload_transform = notification_payload_transform
71
71
@disallowed_notification_payload_keys = Array ( disallowed_notification_payload_keys )
72
72
@kind = kind || :internal
73
+ @span_name_formatter = span_name_formatter
73
74
end
74
75
# rubocop:enable Metrics/ParameterLists
75
76
76
77
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 )
78
79
token = OpenTelemetry ::Context . attach (
79
80
OpenTelemetry ::Trace . context_with_span ( span )
80
81
)
@@ -140,8 +141,8 @@ def sanitized_value(value)
140
141
# Helper method to try an shield the span name formatter from errors
141
142
#
142
143
# 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
145
146
rescue StandardError => e
146
147
OpenTelemetry . handle_error ( exception : e , message : 'Error calling span_name_formatter. Using default span name.' )
147
148
name
0 commit comments