class ElasticAPM::Spies::MongoSpy::Subscriber
def push_event(event)
def push_event(event) return unless ElasticAPM.current_transaction # Some MongoDB commands are not on collections but rather are db # admin commands. For these commands, the value at the `command_name` # key is the integer 1. # For getMore commands, the value at `command_name` is the cursor id # and the collection name is at the key `collection` collection = if event.command[event.command_name] == 1 || event.command[event.command_name].is_a?(BSON::Int64) event.command[:collection] else event.command[event.command_name] end name = [event.database_name, collection, event.command_name].compact.join('.') span = ElasticAPM.start_span( name, TYPE, subtype: SUBTYPE, action: ACTION, context: build_context(event) ) @events[event.operation_id] = span end