Class: Appsignal::Hooks::MongoMonitorSubscriber
- Defined in:
- lib/appsignal/integrations/mongo_ruby_driver.rb
Instance Method Summary collapse
-
#failed(event) ⇒ Object
Called by Mongo::Monitor when query fails.
-
#finish(result, event) ⇒ Object
Finishes the event in the AppSignal extension.
-
#started(event) ⇒ Object
Called by Mongo::Monitor when query starts.
-
#succeeded(event) ⇒ Object
Called by Mongo::Monitor when query succeeds.
Instance Method Details
#failed(event) ⇒ Object
Called by Mongo::Monitor when query fails
29 30 31 32 |
# File 'lib/appsignal/integrations/mongo_ruby_driver.rb', line 29 def failed(event) # Finish the event as failed finish('FAILED', event) end |
#finish(result, event) ⇒ Object
Finishes the event in the AppSignal extension
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/appsignal/integrations/mongo_ruby_driver.rb', line 35 def finish(result, event) transaction = Appsignal::Transaction.current return if transaction.nil_transaction? return if transaction.paused? # Get the query from the transaction store store = transaction.store('mongo_driver') command = store.delete(event.request_id) || {} # Finish the event in the extension. transaction.finish_event( 'query.mongodb', "#{event.command_name.to_s} | #{event.database_name} | #{result}", Appsignal::Utils.data_generate(command), Appsignal::EventFormatter::DEFAULT ) end |
#started(event) ⇒ Object
Called by Mongo::Monitor when query starts
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/appsignal/integrations/mongo_ruby_driver.rb', line 5 def started(event) transaction = Appsignal::Transaction.current return if transaction.nil_transaction? return if transaction.paused? # Format the command command = Appsignal::EventFormatter::MongoRubyDriver::QueryFormatter .format(event.command_name, event.command) # Store the query on the transaction, we need it when the event finishes store = transaction.store('mongo_driver') store[event.request_id] = command # Start this event transaction.start_event end |
#succeeded(event) ⇒ Object
Called by Mongo::Monitor when query succeeds
23 24 25 26 |
# File 'lib/appsignal/integrations/mongo_ruby_driver.rb', line 23 def succeeded(event) # Finish the event as succeeded finish('SUCCEEDED', event) end |