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 41 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 31 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 35 def publish_sdam_event(topic, event) return unless monitoring? monitoring.succeeded(topic, event) end
Private Instance Methods
command_completed(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil )
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 66 def command_completed(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil ) 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, started_event: started_event, server_connection_id: server_connection_id, service_id: service_id, ) else command_succeeded(result, address, operation_id, payload, duration, started_event: started_event, server_connection_id: server_connection_id, service_id: service_id, ) end end
command_failed(failure, address, operation_id, payload, message, duration, started_event:, server_connection_id: nil, service_id: nil )
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 103 def command_failed(failure, address, operation_id, payload, message, duration, started_event:, server_connection_id: nil, service_id: nil ) monitoring.failed( Monitoring::COMMAND, Event::CommandFailed.generate(address, operation_id, payload, message, failure, duration, started_event: started_event, server_connection_id: server_connection_id, service_id: service_id, ) ) end
command_started(address, operation_id, payload, socket_object_id: nil, connection_id: nil, connection_generation: nil, server_connection_id: nil, service_id: nil )
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 49 def command_started(address, operation_id, payload, socket_object_id: nil, connection_id: nil, connection_generation: nil, server_connection_id: nil, service_id: nil ) event = 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, service_id: service_id, ) monitoring.started( Monitoring::COMMAND, event ) event end
command_succeeded(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil )
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 85 def command_succeeded(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil ) monitoring.succeeded( Monitoring::COMMAND, Event::CommandSucceeded.generate( address, operation_id, payload, result ? result.payload : nil, duration, started_event: started_event, server_connection_id: server_connection_id, service_id: service_id, ) ) end
duration(start)
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 117 def duration(start) Time.now - start end
monitoring?()
click to toggle source
# File lib/mongo/monitoring/publishable.rb, line 121 def monitoring? options[:monitoring] != false end