Class: Mongo::Monitoring
- Inherits:
-
Object
- Object
- Mongo::Monitoring
- Includes:
- Id, Subscribable
- Defined in:
- lib/mongo/monitoring.rb,
lib/mongo/monitoring/publishable.rb,
lib/mongo/monitoring/event/secure.rb,
lib/mongo/monitoring/event/server_closed.rb,
lib/mongo/monitoring/sdam_log_subscriber.rb,
lib/mongo/monitoring/event/command_failed.rb,
lib/mongo/monitoring/event/server_opening.rb,
lib/mongo/monitoring/event/command_started.rb,
lib/mongo/monitoring/event/topology_closed.rb,
lib/mongo/monitoring/command_log_subscriber.rb,
lib/mongo/monitoring/event/topology_changed.rb,
lib/mongo/monitoring/event/topology_opening.rb,
lib/mongo/monitoring/event/command_succeeded.rb,
lib/mongo/monitoring/server_closed_log_subscriber.rb,
lib/mongo/monitoring/event/server_heartbeat_failed.rb,
lib/mongo/monitoring/server_opening_log_subscriber.rb,
lib/mongo/monitoring/event/server_heartbeat_started.rb,
lib/mongo/monitoring/topology_closed_log_subscriber.rb,
lib/mongo/monitoring/topology_changed_log_subscriber.rb,
lib/mongo/monitoring/topology_opening_log_subscriber.rb,
lib/mongo/monitoring/event/server_description_changed.rb,
lib/mongo/monitoring/event/server_heartbeat_succeeded.rb,
lib/mongo/monitoring/server_description_changed_log_subscriber.rb
Overview
The class defines behavior for the performance monitoring API.
Defined Under Namespace
Modules: Event, Global, Publishable, Subscribable Classes: CommandLogSubscriber, SDAMLogSubscriber, ServerClosedLogSubscriber, ServerDescriptionChangedLogSubscriber, ServerOpeningLogSubscriber, TopologyChangedLogSubscriber, TopologyClosedLogSubscriber, TopologyOpeningLogSubscriber
Constant Summary collapse
- COMMAND =
The command topic.
'Command'.freeze
- SERVER_CLOSED =
Server closed topic.
'ServerClosed'.freeze
- SERVER_DESCRIPTION_CHANGED =
Server description changed topic.
'ServerDescriptionChanged'.freeze
- SERVER_OPENING =
Server opening topic.
'ServerOpening'.freeze
- TOPOLOGY_CHANGED =
Topology changed topic.
'TopologyChanged'.freeze
- TOPOLOGY_CLOSED =
Topology closed topic.
'TopologyClosed'.freeze
- TOPOLOGY_OPENING =
Topology opening topic.
'TopologyOpening'.freeze
- SERVER_HEARTBEAT =
Server heartbeat started topic.
'ServerHeartbeat'.freeze
Instance Attribute Summary collapse
- #options ⇒ Object readonly private
Class Method Summary collapse
-
.next_operation_id ⇒ Integer
Used for generating unique operation ids to link events together.
Instance Method Summary collapse
-
#failed(topic, event) ⇒ Object
Publish a failed event.
-
#initialize(options = {}) ⇒ Monitoring
constructor
private
Initialize the monitoring.
- #monitoring? ⇒ Boolean private
-
#started(topic, event) ⇒ Object
Publish a started event.
-
#succeeded(topic, event) ⇒ Object
Publish a succeeded event.
Methods included from Subscribable
#subscribe, #subscribers, #subscribers?, #unsubscribe
Methods included from Id
Constructor Details
#initialize(options = {}) ⇒ Monitoring
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Initialize the monitoring.
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/mongo/monitoring.rb', line 212 def initialize( = {}) @options = if [:monitoring] != false Global.subscribers.each do |topic, subscribers| subscribers.each do |subscriber| subscribe(topic, subscriber) end end subscribe(COMMAND, CommandLogSubscriber.new()) subscribe(SERVER_OPENING, ServerOpeningLogSubscriber.new()) subscribe(SERVER_CLOSED, ServerClosedLogSubscriber.new()) subscribe(SERVER_DESCRIPTION_CHANGED, ServerDescriptionChangedLogSubscriber.new()) subscribe(TOPOLOGY_OPENING, TopologyOpeningLogSubscriber.new()) subscribe(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.new()) subscribe(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.new()) end end |
Instance Attribute Details
#options ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
231 232 233 |
# File 'lib/mongo/monitoring.rb', line 231 def @options end |
Class Method Details
.next_operation_id ⇒ Integer
Used for generating unique operation ids to link events together.
71 72 73 |
# File 'lib/mongo/monitoring.rb', line 71 def self.next_operation_id self.next_id end |
Instance Method Details
#failed(topic, event) ⇒ Object
Publish a failed event.
273 274 275 |
# File 'lib/mongo/monitoring.rb', line 273 def failed(topic, event) subscribers_for(topic).each{ |subscriber| subscriber.failed(event) } end |
#monitoring? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
234 235 236 |
# File 'lib/mongo/monitoring.rb', line 234 def monitoring? [:monitoring] != false end |
#started(topic, event) ⇒ Object
Publish a started event.
247 248 249 |
# File 'lib/mongo/monitoring.rb', line 247 def started(topic, event) subscribers_for(topic).each{ |subscriber| subscriber.started(event) } end |
#succeeded(topic, event) ⇒ Object
Publish a succeeded event.
260 261 262 |
# File 'lib/mongo/monitoring.rb', line 260 def succeeded(topic, event) subscribers_for(topic).each{ |subscriber| subscriber.succeeded(event) } end |