Method: Datadog::Tracing::Contrib::MongoDB::MongoCommandSubscriber#succeeded

Defined in:
lib/datadog/tracing/contrib/mongodb/subscribers.rb

#succeeded(event) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/datadog/tracing/contrib/mongodb/subscribers.rb', line 94

def succeeded(event)
  span = get_span(event)
  return unless span

  # add fields that are available only after executing the query
  rows = event.reply.fetch('n', nil)
  span.set_tag(Ext::TAG_ROWS, rows) unless rows.nil?
rescue StandardError => e
  Datadog.logger.debug("error when handling MongoDB 'succeeded' event: #{e}")
ensure
  # whatever happens, the Span must be removed from the local storage and
  # it must be finished to prevent any leak
  span.finish unless span.nil?
  clear_span(event)
end