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

Colapso delresumen constante

COMANDO =

El tema del comando.

Desde:

  • 2.1.0

'Comando'.freeze
CONNECTION_POOL =

El tema de la agrupación de conexiones.

Desde:

  • 2.9.0

'ConnectionPool'.freeze
SERVER_CLOSED =

El servidor cerró el tema.

Desde:

  • 2.4.0

'ServerClosed'.freeze
SERVER_DESCRIPTION_CHANGED =

La descripción del servidor cambió de tema.

Desde:

  • 2.4.0

'ServerDescriptionChanged'.freeze
APERTURA_DEL_SERVIDOR =

Tema de apertura del servidor.

Desde:

  • 2.4.0

'ServerOpening'.freeze
TOPOLOGY_CHANGED =

Tema cambiado de la topología.

Desde:

  • 2.4.0

'TopologyChanged'.freeze
TOPOLOGY_CLOSED =

Tema cerrado de topología.

Desde:

  • 2.4.0

'TopologyClosed'.freeze
TOPOLOGY_OPENING =

Tema de apertura de topología.

Desde:

  • 2.4.0

'TopologyOpening'.freeze
LATIDO DEL CORAZÓN DEL SERVIDOR =

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

Desde:

  • 2.7.0

'ServerHeartbeat'.freeze

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos en Subscribeable

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

Métodos incluidos de Id

incluido

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.

Ejemplos:

Crea la nueva supervisión.

Monitoring.new(:monitoring => true)

Parámetros:

  • opciones (Hash) (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):

  • :escucha (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



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 = {})
  @options = opciones
  si opciones[: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(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))
    suscribirse(APERTURA DEL SERVIDOR, ServerOpeningLogSubscriber.Nuevo(opciones))
    suscribirse(SERVIDOR_CERRADO, Suscriptor de registro cerrado del servidor.Nuevo(opciones))
    suscribirse(DESCRIPCIÓN DEL SERVIDOR CAMBIADA, Suscriptor del registro de cambios de descripción del servidor.Nuevo(opciones))
    suscribirse(TOPLOGÍA_APERTURA, TopologyOpeningLogSubscriber.Nuevo(opciones))
    suscribirse(TOPOLOGY_CHANGED, TopologyChangedLogSubscriber.Nuevo(opciones))
    suscribirse(TOPOLOGY_CLOSED, TopologyClosedLogSubscriber.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
  @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



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.

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



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.

Devuelve:

  • (booleano)

Desde:

  • 2.1.0



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

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

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 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.

Parámetros:

  • topic (string)

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

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



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.

Ejemplos:

Publicar 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



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