Clase: Mongo::supervisión

Hereda:
Objeto
  • Objeto
Mostrar todo
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.

Desde:

  • 2.1.0

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.

Desde:

  • 2.1.0

'Comando'
CONNECTION_POOL =

El tema de la agrupación de conexiones.

Desde:

  • 2.9.0

'Pool de conexiones'
SERVER_CLOSED =

El servidor cerró el tema.

Desde:

  • 2.4.0

'ServerClosed'
SERVER_DESCRIPTION_CHANGED =

La descripción del servidor cambió de tema.

Desde:

  • 2.4.0

'ServerDescriptionChanged'
SERVER_OPENING =

Tema de apertura del servidor.

Desde:

  • 2.4.0

'ServerOpening'
TOPOLOGY_CHANGED =

Tema cambiado de la topología.

Desde:

  • 2.4.0

'TopologyChanged'
TOPOLOGY_CLOSED =

Tema cerrado de topología.

Desde:

  • 2.4.0

'T opologíacerrada'
TOPOLOGY_OPENING =

Tema de apertura de topología.

Desde:

  • 2.4.0

'TopologyOpening'
SERVER_HEARTBEAT =

El servidor ha iniciado el tema del latido cardíaco.

Desde:

  • 2.7.0

'Latido del servidor'

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos de Suscribible

#suscribirse, #suscriptores, #suscriptores?, #darse de baja

Métodos incluidos de Id

incluido

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.

Ejemplos:

Crea la nueva supervisión.

Monitoring.new(:monitoring => true)

Parámetros:

  • opciones (encriptada) (por defecto: {})

    Opciones. El constructor del cliente reenvía sus opciones al constructor de supervisión, aunque supervisión solo reconoce un subconjunto de las opciones reconocidas por el cliente.

Opciones Hash (options):

  • supervisión (verdadero, falso)

    Si se proporciona un valor falso, la instancia de Supervisión se inicializa sin suscriptores de eventos globales de supervisión y no publicará eventos SDAM. Los eventos de supervisión de comandos seguirán siendo publicados, y el driver aún realizará SDAM y supervisará su clúster para realizar la selección del servidor. El registro de eventos SDAM integrado en el controlador se desactivará porque se implementa a través de la suscripción a eventos SDAM. Client#subscribe tendrá éxito para todos los tipos de eventos, pero los suscriptores de eventos SDAM no serán invocados. Los valores diferentes de false resultan en un comportamiento por defecto, que consiste en realizar la publicación normal de eventos SDAM.

Desde:

  • 2.1.0



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(opciones = {})
  @options = opciones
  return a menos que opciones[supervisión] != false

  Global.suscriptores.cada hacer |topic, suscriptores|
    suscriptores.cada hacer |suscriptor|
      suscribirse(topic, suscriptor)
    end
  end
  suscribirse(Comando, CommandLogSubscriber.Nuevo(opciones))
  # 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(opciones))
  suscribirse(SERVIDOR_CERRADO, ServerClosedLogSubscriber.Nuevo(opciones))
  suscribirse(DESCRIPTION_CHANGE, ServerDescriptionChangedLogSubscriber.Nuevo(opciones))
  suscribirse(TOPLOGÍA_APERTURA, TopologyOpeningLogSubscriber.Nuevo(opciones))
  suscribirse(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.Nuevo(opciones))
  suscribirse(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.Nuevo(opciones))
end

Detalles de atributo de instancias

#opcionesObjeto (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.

Desde:

  • 2.1.0



240
241
242
# Archivo 'lib/mongo/supervisión.rb', línea 240

def opciones
  @options
end

Detalles del método de clase

next_operation_idInteger

Se utiliza para generar identificadores de operación únicos para vincular eventos juntos.

Ejemplos:

Obtenga la siguiente ID de operación.

Monitoring.next_operation_id

Devuelve:

  • (Número entero)

    El siguiente id de operación.

Desde:

  • 2.1.0



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.

Ejemplos:

Publicar un evento fallido.

monitoring.failed(COMMAND, event)

Parámetros:

  • topic (string)

    El tema del evento.

  • Evento (evento)

    El evento a publicar.

Desde:

  • 2.1.0



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.

Devuelve:

  • (booleano)

Desde:

  • 2.1.0



243
244
245
# Archivo 'lib/mongo/supervisión.rb', línea 243

def supervisión?
  opciones[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.

Desde:

  • 2.1.0



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.

Parámetros:

  • topic (string)

    El tema del evento.

  • Evento (evento)

    El evento a publicar.

Desde:

  • 2.9.0



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.

Ejemplos:

Publica un evento iniciado.

monitoring.started(COMMAND, event)

Parámetros:

  • topic (string)

    El tema del evento.

  • Evento (evento)

    El evento a publicar.

Desde:

  • 2.1.0



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.

Ejemplos:

Publica un evento exitoso.

monitoring.succeeded(COMMAND, event)

Parámetros:

  • topic (string)

    El tema del evento.

  • Evento (evento)

    El evento a publicar.

Desde:

  • 2.1.0



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