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)