module Mongo::Monitoring::Publishable
Defines behavior for an object that can publish monitoring events.
@since 2.1.0
Attributes
monitoring[R]
@return [ Monitoring
] monitoring The monitoring.
Public Instance Methods
publish_cmap_event(event)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 39 def publish_cmap_event(event) return unless monitoring? monitoring.published(Monitoring::CONNECTION_POOL, event) end
publish_event(topic, event)
click to toggle source
@deprecated
# File lib/mongo/monitoring/publishable.rb, line 28 def publish_event(topic, event) monitoring.succeeded(topic, event) end
publish_sdam_event(topic, event)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 32 def publish_sdam_event(topic, event) return unless monitoring? log_debug("EVENT: #{event.summary}") monitoring.succeeded(topic, event) end
Private Instance Methods
command_completed(result, address, operation_id, payload, duration)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 57 def command_completed(result, address, operation_id, payload, duration) document = result ? (result.documents || []).first : nil if error?(document) parser = Error::Parser.new(document) command_failed(document, address, operation_id, payload, parser.message, duration) else command_succeeded(result, address, operation_id, payload, duration) end end
command_failed(failure, address, operation_id, payload, message, duration)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 80 def command_failed(failure, address, operation_id, payload, message, duration) monitoring.failed( Monitoring::COMMAND, Event::CommandFailed.generate(address, operation_id, payload, message, failure, duration) ) end
command_started(address, operation_id, payload, socket_object_id: nil, connection_id: nil )
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 47 def command_started(address, operation_id, payload, socket_object_id: nil, connection_id: nil ) monitoring.started( Monitoring::COMMAND, Event::CommandStarted.generate(address, operation_id, payload, socket_object_id: socket_object_id, connection_id: connection_id) ) end
command_succeeded(result, address, operation_id, payload, duration)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 67 def command_succeeded(result, address, operation_id, payload, duration) monitoring.succeeded( Monitoring::COMMAND, Event::CommandSucceeded.generate( address, operation_id, payload, result ? result.payload : nil, duration ) ) end
duration(start)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 87 def duration(start) Time.now - start end
error?(document)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 91 def error?(document) document && (document['ok'] == 0 || document.key?('$err')) end
monitoring?()
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 95 def monitoring? options[:monitoring] != false end