Module: Mongo::Monitoring::Publishable
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
::Mongo::Cluster ,
::Mongo::Cluster::Topology::Base ,
::Mongo::Cluster::Topology::LoadBalanced ,
::Mongo::Cluster::Topology::ReplicaSetNoPrimary ,
::Mongo::Cluster::Topology::ReplicaSetWithPrimary ,
::Mongo::Cluster::Topology::Sharded ,
::Mongo::Cluster::Topology::Single ,
::Mongo::Cluster::Topology::Unknown ,
::Mongo::Server ,
::Mongo::Server::Connection ,
::Mongo::Server::ConnectionBase ,
::Mongo::Server::ConnectionPool ,
::Mongo::Server::PendingConnection
| |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
::Mongo::Loggable
|
|
Defined in: | lib/mongo/monitoring/publishable.rb |
Overview
Defines behavior for an object that can publish monitoring events.
Constant Summary
::Mongo::Loggable
- Included
Instance Attribute Summary
- #monitoring ⇒ Monitoring readonly
- #monitoring? ⇒ Boolean readonly private
Instance Method Summary
- #publish_cmap_event(event)
- #publish_event(topic, event) deprecated Deprecated.
- #publish_sdam_event(topic, event)
- #command_completed(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil) private
- #command_failed(failure, address, operation_id, payload, message, duration, started_event:, server_connection_id: nil, service_id: nil) private
- #command_started(address, operation_id, payload, socket_object_id: nil, connection_id: nil, connection_generation: nil, server_connection_id: nil, service_id: nil) private
- #command_succeeded(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil) private
- #duration(start) private
::Mongo::Loggable
- Included
#log_debug | Convenience method to log debug messages with the standard prefix. |
#log_error | Convenience method to log error messages with the standard prefix. |
#log_fatal | Convenience method to log fatal messages with the standard prefix. |
#log_info | Convenience method to log info messages with the standard prefix. |
#log_warn | Convenience method to log warn messages with the standard prefix. |
#logger | Get the logger instance. |
#_mongo_log_prefix, #format_message |
Instance Attribute Details
#monitoring ⇒ Monitoring (readonly)
# File 'lib/mongo/monitoring/publishable.rb', line 28
attr_reader :monitoring
#monitoring? ⇒ Boolean
(readonly, private)
# File 'lib/mongo/monitoring/publishable.rb', line 121
def monitoring? [:monitoring] != false end
Instance Method Details
#command_completed(result, address, operation_id, payload, duration, started_event:, server_connection_id: nil, service_id: nil) (private)
# 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., 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) (private)
# File 'lib/mongo/monitoring/publishable.rb', line 103
def command_failed(failure, address, operation_id, payload, , duration, started_event:, server_connection_id: nil, service_id: nil ) monitoring.failed( Monitoring::COMMAND, Event::CommandFailed.generate(address, operation_id, payload, , 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) (private)
# 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) (private)
# 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) (private)
# File 'lib/mongo/monitoring/publishable.rb', line 117
def duration(start) Time.now - start end
#publish_cmap_event(event)
# 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)
Deprecated.
# File 'lib/mongo/monitoring/publishable.rb', line 31
def publish_event(topic, event) monitoring.succeeded(topic, event) end
#publish_sdam_event(topic, event)
# File 'lib/mongo/monitoring/publishable.rb', line 35
def publish_sdam_event(topic, event) return unless monitoring? monitoring.succeeded(topic, event) end