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 61 def command_completed(result, address, operation_id, payload, duration) document = result ? (result.documents || []).first : nil if document && (document['ok'] && document['ok'] != 1 || document.key?('$err')) 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 84 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, connection_generation: nil, server_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, connection_generation: nil, server_connection_id: nil ) monitoring.started( Monitoring::COMMAND, Event::CommandStarted.generate(address, operation_id, payload, socket_object_id: socket_object_id, connection_id: connection_id, connection_generation: connection_generation, server_connection_id: server_connection_id, ) ) end
command_succeeded(result, address, operation_id, payload, duration)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 71 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 91 def duration(start) Time.now - start end
monitoring?()
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 95 def monitoring? options[:monitoring] != false end