Clase: Mongo::Monitoreo

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

Desde:

  • 2.1.0

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.

Desde:

  • 2.1.0

'Dominio '.freeze
CONNECTION_POOL =

El tema del pool de conexiones.

Desde:

  • 2.9.0

'Grupo de conexiones'.freeze
SERVIDOR_CERRADO =

Tema cerrado del servidor.

Desde:

  • 2.4.0

'Servidor cerrado'.freeze
DESCRIPCIÓN DEL SERVIDOR CAMBIADA =

La descripción del servidor cambió de tema.

Desde:

  • 2.4.0

'Descripción delservidor modificada'.freeze
APERTURA_DEL_SERVIDOR =

Tema de apertura del servidor.

Desde:

  • 2.4.0

'Apertura del servidor '.freeze
TOPOLOGÍA_CAMBIADA =

La topología cambió de tema.

Desde:

  • 2.4.0

'Topología cambiada'.freeze
TOPOLOGÍA_CERRADA =

Topología tema cerrado.

Desde:

  • 2.4.0

'Topología cerrada'.freeze
APERTURA_TOPOLOGÍA =

Tema de apertura de topología.

Desde:

  • 2.4.0

'Apertura de topología '.freeze
LATIDO DEL CORAZÓN DEL SERVIDOR =

El latido del servidor inició el tema.

Desde:

  • 2.7.0

'ServerHeartbeat'.freeze

Colapso delresumen de atributos de instancia

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

Métodos incluidos en Subscribeable

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

Métodos incluidos de Id

incluido

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.

Ejemplos:

Crear el nuevo monitoreo.

Monitoring.new(:monitoring => true)

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Opciones. El constructor del cliente envía sus opciones al constructor de Monitoring, aunque Monitoring solo reconoce un subconjunto de las opciones reconocidas por el cliente.

Opciones Hash(opciones):

  • :escucha (verdadero,falso)

    Si se especifica "false", la instancia de Monitoreo se inicializa sin suscriptores de eventos de monitoreo global y no publicará eventos SDAM. Los eventos de monitoreo de comandos se publicarán, y el controlador seguirá ejecutando SDAM y monitoreando su clúster para seleccionar el servidor. El registro integrado de eventos SDAM del controlador se deshabilitará, ya que se implementa mediante suscripción a eventos SDAM. Client#subscribe se ejecutará correctamente para todos los tipos de eventos, pero no se invocarán los suscriptores a eventos SDAM. Los valores distintos de "false" resultan en el comportamiento predeterminado, que consiste en la publicación normal de eventos SDAM.

Desde:

  • 2.1.0



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 = {})
  @opciones = opciones
  Si opciones[: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(opciones))
    # 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(opciones))
    Suscríbete(SERVIDOR CERRADO, Suscriptor de registro cerrado del servidor.Nuevo(opciones))
    Suscríbete(DESCRIPCIÓN DEL SERVIDOR CAMBIADA, Suscriptor del registro de cambios de descripción del servidor.Nuevo(opciones))
    Suscríbete(APERTURA DE TOPOLOGÍA, TopologyOpeningLogSubscriber.Nuevo(opciones))
    Suscríbete(TOPOLOGÍA CAMBIADA, Suscriptor de registro de cambios de topología.Nuevo(opciones))
    Suscríbete(TOPOLOGÍA_CERRADA, TopologíaCerradaRegistroSuscriptor.Nuevo(opciones))
  end
end

Detalles de los atributos de instancia

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

Desde:

  • 2.1.0



242
243
244
# Archivo 'lib/mongo/monitoring.rb', línea 242

def opciones
  @opciones
end

Detalles del método de clase

.next_operation_idEntero

Se utiliza para generar identificadores de operación únicos para vincular eventos entre sí.

Ejemplos:

Obtenga la siguiente ID de operación.

Monitoring.next_operation_id

Devuelve:

  • (Entero)

    La siguiente operación id.

Desde:

  • 2.1.0



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.

Ejemplos:

Publicar un evento fallido.

monitoring.failed(COMMAND, event)

Parámetros:

  • tema (Cadena) -

    El tema del evento.

  • evento (Evento) -

    El evento a publicar.

Desde:

  • 2.1.0



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.

Devuelve:

  • (Booleano)

Desde:

  • 2.1.0



245
246
247
# Archivo 'lib/mongo/monitoring.rb', línea 245

def ¿escucha?
  opciones[: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.

Desde:

  • 2.1.0



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.

Parámetros:

  • tema (Cadena) -

    El tema del evento.

  • evento (Evento) -

    El evento a publicar.

Desde:

  • 2.9.0



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.

Ejemplos:

Publicar un evento iniciado.

monitoring.started(COMMAND, event)

Parámetros:

  • tema (Cadena) -

    El tema del evento.

  • evento (Evento) -

    El evento a publicar.

Desde:

  • 2.1.0



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.

Ejemplos:

Publicar un evento exitoso.

monitoring.succeeded(COMMAND, event)

Parámetros:

  • tema (Cadena) -

    El tema del evento.

  • evento (Evento) -

    El evento a publicar.

Desde:

  • 2.1.0



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