lib/opentelemetry/instrumentation/mongo/subscriber.rb in opentelemetry-instrumentation-mongo-0.20.0 vs lib/opentelemetry/instrumentation/mongo/subscriber.rb in opentelemetry-instrumentation-mongo-0.21.0

- old
+ new

@@ -11,11 +11,11 @@ module Mongo # Event handler class for Mongo Ruby driver class Subscriber THREAD_KEY = :__opentelemetry_mongo_spans__ - def started(event) # rubocop:disable Metrics/AbcSize + def started(event) # start a trace and store it in the current thread; using the `operation_id` # is safe since it's a unique id used to link events together. Also only one # thread is involved in this execution so thread-local storage should be safe. Reference: # https://github.com/mongodb/mongo-ruby-driver/blob/master/lib/mongo/monitoring.rb#L70 # https://github.com/mongodb/mongo-ruby-driver/blob/master/lib/mongo/monitoring/publishable.rb#L38-L56 @@ -31,10 +31,12 @@ } config = Mongo::Instrumentation.instance.config attributes['peer.service'] = config[:peer_service] if config[:peer_service] # attributes['db.statement'] = CommandSerializer.new(event.command).serialize - attributes['db.statement'] = CommandSerializer.new(event.command).serialize if config[:db_statement] == :include + omit = config[:db_statement] == :omit + obfuscate = config[:db_statement] == :obfuscate + attributes['db.statement'] = CommandSerializer.new(event.command, obfuscate).serialize unless omit attributes['db.mongodb.collection'] = collection if collection attributes.compact! span = tracer.start_span(span_name(collection, event.command_name), attributes: attributes, kind: :client) set_span(event, span)