Clase: Mongo::Monitoreo
- Hereda:
-
Objeto
- Objeto
- Mongo::Monitoreo
- Incluye:
- Id, suscribible
- Definido en:
- lib/mongo/monitoring.rb,
lib/mongo/monitoring/publishable.rb,
lib/mongo/monitoring/event/secure.rb,
lib/mongo/monitoring/event/cmap/base.rb,
lib/mongo/monitoring/cmap_log_subscriber.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/cmap/pool_ready.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/cmap/pool_closed.rb,
lib/mongo/monitoring/event/topology_changed.rb,
lib/mongo/monitoring/event/topology_opening.rb,
lib/mongo/monitoring/event/cmap/pool_cleared.rb,
lib/mongo/monitoring/event/cmap/pool_created.rb,
lib/mongo/monitoring/event/command_succeeded.rb,
lib/mongo/monitoring/event/cmap/connection_ready.rb,
lib/mongo/monitoring/unified_sdam_log_subscriber.rb,
lib/mongo/monitoring/event/cmap/connection_closed.rb,
lib/mongo/monitoring/server_closed_log_subscriber.rb,
lib/mongo/monitoring/event/cmap/connection_created.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/cmap/connection_checked_in.rb,
lib/mongo/monitoring/event/server_description_changed.rb,
lib/mongo/monitoring/event/server_heartbeat_succeeded.rb,
lib/mongo/monitoring/event/cmap/connection_checked_out.rb,
lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb,
lib/mongo/monitoring/event/cmap/connection_check_out_started.rb,
lib/mongo/monitoring/server_description_changed_log_subscriber.rb
Overview
La clase define el comportamiento de la API de monitoreo de rendimiento.
Definido en el espacio de nombres
Modules: Clases de evento, globales, publicables y suscribibles: CmapLogSubscriber, CommandLogSubscriber, SDAMLogSubscriber, ServerClosedLogSubscriber, ServerDescriptionChangedLogSubscriber, ServerOpeningLogSubscriber, TopologyChangedLogSubscriber, TopologyClosedLogSubscriber, TopologyOpeningLogSubscriber, UnifiedSdamLogSubscriber
Colapso delresumen constante
- COMANDO =
El tema del comando.
'Dominio '.freeze
- CONNECTION_POOL =
El tema del pool de conexiones.
'Grupo de conexiones'.freeze
- SERVIDOR_CERRADO =
Tema cerrado del servidor.
'Servidor cerrado'.freeze
- DESCRIPCIÓN DEL SERVIDOR CAMBIADA =
La descripción del servidor cambió de tema.
'Descripción delservidor modificada'.freeze
- APERTURA_DEL_SERVIDOR =
Tema de apertura del servidor.
'Apertura del servidor '.freeze
- TOPOLOGÍA_CAMBIADA =
La topología cambió de tema.
'Topología cambiada'.freeze
- TOPOLOGÍA_CERRADA =
Topología tema cerrado.
'Topología cerrada'.freeze
- APERTURA_TOPOLOGÍA =
Tema de apertura de topología.
'Apertura de topología '.freeze
- LATIDO DEL CORAZÓN DEL SERVIDOR =
El latido del servidor inició el tema.
'ServerHeartbeat'.freeze
Colapso delresumen de atributos de instancia
- #opciones ⇒ Objeto solo lectura privada
Colapso delresumen del método de clase
-
.next_operation_id ⇒ Entero
Se utiliza para generar identificadores de operación únicos para vincular eventos entre sí.
Colapso del resumen del método de instancia
-
#falló(tema, evento) ⇒ Objeto
Publicar un evento fallido.
-
#inicializar(opciones = {}) ⇒ Monitoreo
constructor
privada
Inicializar la monitorización.
- #monitoring? ⇒ Boolean privada
- #publish_heartbeat(servidor, esperado: falso) ⇒ Objeto privada
-
#publicado(tema, evento) ⇒ Objeto
Publicar un evento.
-
#iniciado(tema, evento) ⇒ Objeto
Publicar un evento iniciado.
-
#exitoso(tema, evento) ⇒ Objeto
Publicar un evento exitoso.
Métodos incluidos en Subscribeable
#suscribirse, #suscriptores, #suscriptores?, #darse de baja
Métodos incluidos de Id
Detalles del constructor
#inicializar(opciones = {}) ⇒ Monitoreo
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicializar la monitorización.
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
# Archivo 'lib/mongo/monitoring.rb', línea 220 def inicializar( = {}) @opciones = Si [:escucha] != false Global.suscriptores.cada hacer |tema, suscriptores| suscriptores.cada hacer |abonado| Suscríbete(tema, abonado) end end Suscríbete(DOMINIO, Suscriptor del registro de comandos.Nuevo()) # Los eventos CMAP no se registran de forma predeterminada porque esto creará # entradas de registro para cada operación realizada por el controlador. #suscribirse(CONNECTION_POOL, CmapLogSubscriber.new(options)) Suscríbete(APERTURA DEL SERVIDOR, Suscriptor del registro de apertura del servidor.Nuevo()) Suscríbete(SERVIDOR CERRADO, Suscriptor de registro cerrado del servidor.Nuevo()) Suscríbete(DESCRIPCIÓN DEL SERVIDOR CAMBIADA, Suscriptor del registro de cambios de descripción del servidor.Nuevo()) Suscríbete(APERTURA DE TOPOLOGÍA, TopologyOpeningLogSubscriber.Nuevo()) Suscríbete(TOPOLOGÍA CAMBIADA, Suscriptor de registro de cambios de topología.Nuevo()) Suscríbete(TOPOLOGÍA_CERRADA, TopologíaCerradaRegistroSuscriptor.Nuevo()) end end |
Detalles de los atributos de instancia
#opciones ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
242 243 244 |
# Archivo 'lib/mongo/monitoring.rb', línea 242 def @opciones end |
Detalles del método de clase
.next_operation_id ⇒ Entero
Se utiliza para generar identificadores de operación únicos para vincular eventos entre sí.
79 80 81 |
# Archivo 'lib/mongo/monitoring.rb', línea 79 def yo.id_de_próxima_operación yo.siguiente_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 iniciados, exitosos o fallidos, como eventos de comando y de latido.
306 307 308 |
# Archivo 'lib/mongo/monitoring.rb', línea 306 def fracasado(tema, evento) suscriptores_para(tema).cada{ |abonado| abonado.fracasado(evento) } end |
#monitoring? ⇒ Boolean
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
245 246 247 |
# Archivo 'lib/mongo/monitoring.rb', línea 245 def ¿escucha? [:escucha] != false end |
#publish_heartbeat(servidor, esperado: falso) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
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 355 |
# Archivo 'lib/mongo/monitoring.rb', línea 311 def publicar_latido(Server, esperado: false) Si ¿escucha? evento iniciado = Evento::Latido del servidor iniciado.Nuevo( Server.dirección, esperado: esperado) comenzó(LATIDO DEL SERVIDOR, evento iniciado) end # La duración que publicamos en eventos de latidos exitosos/fallidos es # el tiempo empleado en todo el latido del corazón. Esto podría incluir el tiempo # para conectar el socket (incluido el protocolo de enlace TLS), no solo el tiempo # gastado en la llamada hola en sí. # 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 el "envío del # mensaje" (hola). Este requisito no tiene sentido si, # por ejemplo, nunca pudimos conectar al servidor en absoluto # y por lo tanto nunca se envió el saludo. start_time = Utils.monotonic_time begin resultado = rendimiento rescate => Excª Si ¿escucha? evento = Evento::Error en el latido del servidor.Nuevo( Server.dirección, Utils.monotonic_time - start_time, Excª, esperado: esperado, evento iniciado: evento iniciado, ) fracasado(LATIDO DEL SERVIDOR, evento) end propagar else Si ¿escucha? evento = Evento::Latido del servidor exitoso.Nuevo( Server.dirección, Utils.monotonic_time - start_time, esperado: esperado, evento iniciado: evento iniciado, ) tuvo éxito(LATIDO DEL SERVIDOR, evento) end resultado end end |
#publicado(tema, evento) ⇒ Objeto
Publicar un evento.
Este método se utiliza para tipos de eventos que solo tienen un único evento en ellos.
258 259 260 |
# Archivo 'lib/mongo/monitoring.rb', línea 258 def publicado(tema, evento) suscriptores_para(tema).cada{ |abonado| abonado.publicado(evento) } end |
#iniciado(tema, evento) ⇒ Objeto
Publicar un evento iniciado.
Este método se utiliza para tipos de eventos que contienen eventos iniciados, exitosos o fallidos, como eventos de comando y de latido.
274 275 276 |
# Archivo 'lib/mongo/monitoring.rb', línea 274 def comenzó(tema, evento) suscriptores_para(tema).cada{ |abonado| abonado.comenzó(evento) } end |
#exitoso(tema, evento) ⇒ Objeto
Publicar un evento exitoso.
Este método se utiliza para tipos de eventos que contienen eventos iniciados, exitosos o fallidos, como eventos de comando y de latido.
290 291 292 |
# Archivo 'lib/mongo/monitoring.rb', línea 290 def tuvo éxito(tema, evento) suscriptores_para(tema).cada{ |abonado| abonado.tuvo éxito(evento) } end |