Clase: Mongo::supervisión
- Hereda:
-
Objeto
- Objeto
- Mongo::supervisión
- Incluye:
- Id, Suscribible
- Definido en:
- lib/mongo/supervisión.rb,
lib/mongo/supervisión/publishable.rb,
lib/mongo/supervisión/event/secure.rb,
lib/mongo/supervisión/event/cmap/base.rb,
lib/mongo/supervisión/cmap_log_subscriber.rb,
lib/mongo/supervisión/event/server_closed.rb,
lib/mongo/supervisión/sdam_log_subscriber.rb,
lib/mongo/supervisión/event/command_failed.rb,
lib/mongo/supervisión/event/server_opening.rb,
lib/mongo/supervisión/event/cmap/pool_ready.rb,
lib/mongo/supervisión/event/command_started.rb,
lib/mongo/supervisión/event/topology_closed.rb,
lib/mongo/supervisión/command_log_subscriber.rb,
lib/mongo/supervisión/event/cmap/pool_closed.rb,
lib/mongo/supervisión/event/topology_changed.rb,
lib/mongo/supervisión/event/topology_opening.rb,
lib/mongo/supervisión/event/cmap/pool_cleared.rb,
lib/mongo/supervisión/event/cmap/pool_created.rb,
lib/mongo/supervisión/event/command_succeeded.rb,
lib/mongo/supervisión/event/cmap/connection_ready.rb,
lib/mongo/supervisión/unified_sdam_log_subscriber.rb,
lib/mongo/supervisión/event/cmap/connection_closed.rb,
lib/mongo/supervisión/server_closed_log_subscriber.rb,
lib/mongo/supervisión/event/cmap/connection_created.rb,
lib/mongo/supervisión/event/server_heartbeat_failed.rb,
lib/mongo/supervisión/server_opening_log_subscriber.rb,
lib/mongo/supervisión/event/server_heartbeat_started.rb,
lib/mongo/supervisión/topology_closed_log_subscriber.rb,
lib/mongo/supervisión/topology_changed_log_subscriber.rb,
lib/mongo/supervisión/topology_opening_log_subscriber.rb,
lib/mongo/supervisión/event/cmap/connection_checked_in.rb,
lib/mongo/supervisión/event/server_description_changed.rb,
lib/mongo/supervisión/event/server_heartbeat_succeeded.rb,
lib/mongo/supervisión/event/cmap/connection_checked_out.rb,
lib/mongo/supervisión/event/cmap/connection_check_out_failed.rb,
lib/mongo/supervisión/event/cmap/connection_check_out_started.rb,
lib/mongo/supervisión/server_description_changed_log_subscriber.rb
Overview
La clase define el comportamiento para la API de supervisión del rendimiento.
Definido bajo Namespace
Modules: Evento, Global, Publicable, Suscribible Clases: CmapLogSubscriber, CommandLogSubscriber, SDAMLogSubscriber, ServerClosedLogSubscriber, ServerDescriptionChangedLogSubscriber, ServerOpeningLogSubscriber, TopologyChangedLogSubscriber, TopologyClosedLogSubscriber, TopologyOpeningLogSubscriber, UnifiedSdamLogSubscriber
Resumen de constantes colapsar
- COMANDO =
El tema de comando.
'Comando'- CONNECTION_POOL =
El tema de la agrupación de conexiones.
'Pool de conexiones'- SERVER_CLOSED =
El servidor cerró el tema.
'ServerClosed'- SERVER_DESCRIPTION_CHANGED =
La descripción del servidor cambió de tema.
'ServerDescriptionChanged'- SERVER_OPENING =
Tema de apertura del servidor.
'ServerOpening'- TOPOLOGY_CHANGED =
Tema cambiado de la topología.
'TopologyChanged'- TOPOLOGY_CLOSED =
Tema cerrado de topología.
'T opologíacerrada'- TOPOLOGY_OPENING =
Tema de apertura de topología.
'TopologyOpening'- SERVER_HEARTBEAT =
El servidor ha iniciado el tema del latido cardíaco.
'Latido del servidor'
Resumen de atributos de la instancia colapsar
- #opciones ⇒ Objeto Solo lectura privado
Resumen del método de clase colapsar
-
.next_operation_id ⇒ Integer
Se utiliza para generar identificadores de operación únicos para vincular eventos juntos.
Resumen del método de instancia colapsar
-
#falló(tema, evento) ⇒ Objeto
Publicar un evento fallido.
-
#initialize(opciones = {}) ⇒ supervisión
constructor
privado
Inicialice la supervisión.
- #monitoring? ⇒ Boolean privado
- #publish_heartbeat(servidor, esperado: false) ⇒ Objeto privado
-
#publicado(tema, evento) ⇒ Objeto
Publicar un evento.
-
#starteado(tema, evento) ⇒ Objeto
Publica un evento iniciado.
-
#succeeded(tema, evento) ⇒ Objeto
Publica un evento exitoso.
Métodos incluidos de Suscribible
#suscribirse, #suscriptores, #suscriptores?, #darse de baja
Métodos incluidos de Id
Detalles del Constructor
#initialize(opciones = {}) ⇒ Supervisión
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicialice la supervisión.
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 |
# Archivo 'lib/mongo/supervisión.rb', línea 218 def inicializar( = {}) @options = return a menos que [supervisión] != false Global.suscriptores.cada hacer |topic, suscriptores| suscriptores.cada hacer |suscriptor| suscribirse(topic, suscriptor) end end suscribirse(Comando, CommandLogSubscriber.Nuevo()) # Los eventos CMAP no se registran por defecto porque esto creará # entradas de registro para cada operación realizada por el controlador. #suscribirse(CONNECTION_POOL, CmapLogSubscriber.new(options)) suscribirse(APERTURA DEL SERVIDOR, ServerOpeningLogSubscriber.Nuevo()) suscribirse(SERVIDOR_CERRADO, ServerClosedLogSubscriber.Nuevo()) suscribirse(DESCRIPTION_CHANGE, ServerDescriptionChangedLogSubscriber.Nuevo()) suscribirse(TOPLOGÍA_APERTURA, TopologyOpeningLogSubscriber.Nuevo()) suscribirse(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.Nuevo()) suscribirse(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.Nuevo()) end |
Detalles de atributo de instancias
#opciones ⇒ Objeto (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
240 241 242 |
# Archivo 'lib/mongo/supervisión.rb', línea 240 def @options end |
Detalles del método de clase
next_operation_id ⇒ Integer
Se utiliza para generar identificadores de operación únicos para vincular eventos juntos.
77 78 79 |
# Archivo 'lib/mongo/supervisión.rb', línea 77 def sí mismo.next_operation_id next_id end |
Detalles del método de instancia
#fallido(tema, evento) ⇒ objeto
Publicar un evento fallido.
Este método se utiliza para tipos de eventos que contienen eventos de inicio, éxito o fallo, como los eventos de comando y latido.
304 305 306 |
# Archivo 'lib/mongo/supervisión.rb', línea 304 def Fallido(topic, Evento) subscribers_for(topic).cada { |suscriptor| suscriptor.Fallido(Evento) } end |
#monitoring? ⇒ Boolean
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
243 244 245 |
# Archivo 'lib/mongo/supervisión.rb', línea 243 def supervisión? [supervisión] != false end |
#publish_heartbeat(servidor, awaited: false) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 |
# Archivo 'lib/mongo/supervisión.rb', línea 309 def publish_heartbeat(Server, esperado: false) si supervisión? evento_inicio = Evento::ServerHeartbeatStarted.Nuevo( Server.dirección, esperado: en espera ) iniciado(LATIDO_DEL_SERVIDOR, evento_inicio) end # La duración que publicamos en eventos exitosos/fallidos de latido es # el tiempo dedicado a todo el latido cardíaco. Esto podría incluir tiempo # para conectar el socket (incluyendo el apretón de manos de TLS), no solo tiempo # gastado en la propia llamada hello. # La especificación en https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-logging-and-monitoring.md # requiere que la duración expuesta aquí comience desde "enviar el # mensaje" (hola). Este requisito no tiene sentido si, # por ejemplo, nunca pudimos conectar al servidor en absoluto # y así, el saludo nunca se envió. start_time = Utils.monotonic_time begin Resultado = rendimiento rescate StandardError => e si supervisión? Evento = Evento::ServerHeartbeatFailed.Nuevo( Server.dirección, Utils.monotonic_time - start_time, e, esperado: en espera, started_event: evento_inicio ) Fallido(LATIDO_DEL_SERVIDOR, Evento) end propagar else si supervisión? Evento = Evento::ServerHeartbeatSucceeded.Nuevo( Server.dirección, Utils.monotonic_time - start_time, esperado: en espera, started_event: evento_inicio ) tuvo éxito(LATIDO_DEL_SERVIDOR, Evento) end Resultado end end |
#published(tema, evento) ⇒ objeto
Publicar un evento.
Este método se utiliza para tipos de eventos que solo tienen un único evento en su interior.
256 257 258 |
# Archivo 'lib/mongo/supervisión.rb', línea 256 def publicado(topic, Evento) subscribers_for(topic).cada { |suscriptor| suscriptor.publicado(Evento) } end |
#iniciado(tema, evento) ⇒ Object
Publica un evento iniciado.
Este método se utiliza para tipos de eventos que contienen eventos de inicio, éxito o fallo, como los eventos de comando y latido.
272 273 274 |
# Archivo 'lib/mongo/supervisión.rb', línea 272 def iniciado(topic, Evento) subscribers_for(topic).cada { |suscriptor| suscriptor.iniciado(Evento) } end |
#succeeded(tema, evento) ⇒ Object
Publica un evento exitoso.
Este método se utiliza para tipos de eventos que contienen eventos de inicio, éxito o fallo, como los eventos de comando y latido.
288 289 290 |
# Archivo 'lib/mongo/supervisión.rb', línea 288 def tuvo éxito(topic, Evento) subscribers_for(topic).cada { |suscriptor| suscriptor.tuvo éxito(Evento) } end |