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 26
attr_reader :monitoring
#monitoring? ⇒ Boolean (readonly, private)
# File 'lib/mongo/monitoring/publishable.rb', line 111
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 62
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 95
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 47
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 78
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 107
def duration(start) Time.now - start end
#publish_cmap_event(event)
# 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)
Deprecated.
# File 'lib/mongo/monitoring/publishable.rb', line 29
def publish_event(topic, event) monitoring.succeeded(topic, event) end
#publish_sdam_event(topic, event)
# File 'lib/mongo/monitoring/publishable.rb', line 33
def publish_sdam_event(topic, event) return unless monitoring? monitoring.succeeded(topic, event) end