Class: AlacrityRails::Probe::MongoDriver
- Inherits:
-
Object
- Object
- AlacrityRails::Probe::MongoDriver
- Defined in:
- lib/alacrity-rails/probe/mongo_driver.rb
Class Method Summary collapse
Instance Method Summary collapse
- #start_events ⇒ Object
- #started(event) ⇒ Object
- #succeeded(event) ⇒ Object (also: #failed)
Class Method Details
.activate ⇒ Object
4 5 6 7 8 |
# File 'lib/alacrity-rails/probe/mongo_driver.rb', line 4 def self.activate if defined?(Mongo) Mongo::Monitoring::Global.subscribe(Mongo::Monitoring::COMMAND, new) end end |
Instance Method Details
#start_events ⇒ Object
10 11 12 |
# File 'lib/alacrity-rails/probe/mongo_driver.rb', line 10 def start_events @start_events ||= {} end |
#started(event) ⇒ Object
14 15 16 |
# File 'lib/alacrity-rails/probe/mongo_driver.rb', line 14 def started(event) start_events[event.operation_id] = { started_at: DateTime.now, command: event.command } end |
#succeeded(event) ⇒ Object Also known as: failed
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/alacrity-rails/probe/mongo_driver.rb', line 18 def succeeded(event) finished = DateTime.now start_event = start_events.delete(event.operation_id) command = {} start_event[:command].each do |key, value| command[key] = value.respond_to?(:keys) ? value.keys : value end store(event.command_name, start_event[:started_at], finished, command) rescue => error Logger.error("Alacrity mongo driver tracking failed: #{error.inspect}") end |