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
Colapso delresumen constante
- COMANDO =
El tema del comando.
'Comando'.freeze
- CONNECTION_POOL =
El tema de la agrupación de conexiones.
'ConnectionPool'.freeze
- SERVER_CLOSED =
El servidor cerró el tema.
'ServerClosed'.freeze
- SERVER_DESCRIPTION_CHANGED =
La descripción del servidor cambió de tema.
'ServerDescriptionChanged'.freeze
- APERTURA_DEL_SERVIDOR =
Tema de apertura del servidor.
'ServerOpening'.freeze
- TOPOLOGY_CHANGED =
Tema cambiado de la topología.
'TopologyChanged'.freeze
- TOPOLOGY_CLOSED =
Tema cerrado de topología.
'TopologyClosed'.freeze
- TOPOLOGY_OPENING =
Tema de apertura de topología.
'TopologyOpening'.freeze
- LATIDO DEL CORAZÓN DEL SERVIDOR =
El servidor ha iniciado el tema del latido cardíaco.
'ServerHeartbeat'.freeze
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.
-
#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
#initialize(opciones = {}) ⇒ Supervisión
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicialice la supervisió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( = {}) @options = si [:escucha] != false Global.suscriptores.cada hacer |topic, suscriptores| suscriptores.cada hacer |suscriptor| suscribirse(topic, suscriptor) end end suscribirse(Comando, 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)) suscribirse(APERTURA DEL SERVIDOR, ServerOpeningLogSubscriber.Nuevo()) suscribirse(SERVIDOR_CERRADO, Suscriptor de registro cerrado del servidor.Nuevo()) suscribirse(DESCRIPCIÓN DEL SERVIDOR CAMBIADA, Suscriptor del registro de cambios de descripción del servidor.Nuevo()) suscribirse(TOPLOGÍA_APERTURA, TopologyOpeningLogSubscriber.Nuevo()) suscribirse(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.Nuevo()) suscribirse(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.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 @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.
79 80 81 |
# Archivo 'lib/mongo/monitoring.rb', línea 79 def sí mismo.id_de_próxima_operación sí mismo.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 Fallido(topic, Evento) subscribers_for(topic).cada{ |suscriptor| suscriptor.Fallido(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 supervisión? [:escucha] != false end |
#publish_heartbeat(servidor, awaited: false) ⇒ Object
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 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 => Excª si supervisión? Evento = Evento::ServerHeartbeatFailed.Nuevo( Server.dirección, Utils.monotonic_time - start_time, Excª, esperado: en espera, evento iniciado: 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, evento iniciado: 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.
258 259 260 |
# Archivo 'lib/mongo/monitoring.rb', línea 258 def publicado(topic, Evento) subscribers_for(topic).cada{ |suscriptor| suscriptor.publicado(Evento) } end |
#iniciado(tema, evento) ⇒ Objeto
Publica 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 iniciado(topic, Evento) subscribers_for(topic).cada{ |suscriptor| suscriptor.iniciado(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(topic, Evento) subscribers_for(topic).cada{ |suscriptor| suscriptor.tuvo éxito(Evento) } end |