Classe: Mongo::Monitoramento

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
ID, Inscritível
Definido em:
lib/mongo/monitoring.rb,
lib/mongo/monitoring/publishable.rb,
lib/mongo/monitoring/ evento/secure.rb,
lib/mongo/monitoring/ evento/cmap/base.rb,
lib/mongo/monitoring/ cmap_log_subscriber.rb,
lib/mongo/monitoring/ evento/server_closed.rb,
lib/mongo/monitoring/sdam_log_subscriber.rb,
lib/mongo/monitoring/ evento/command_failed.rb,
lib/mongo/monitoring/ evento/server_opening.rb,
lib/mongo/monitoring/ evento/cmap/pool_ready.rb,
lib/mongo/monitoring/ evento/command_started.rb,
lib/mongo/monitoring/ evento/topology_closed.rb,
lib/mongo/monitoring/command_log_subscriber.rb,
lib/ mongo/monitoring/ evento/cmap/pool_closed.rb,
lib/mongo/monitoring/ evento/topology_changed.rb,
lib/mongo/monitoring/ evento/topology_opening.rb,
lib/mongo/monitoring/ evento/cmap/pool_cleared.rb,
lib/mongo/monitoring/ evento/cmap/pool_created.rb,
lib/mongo/monitoring/ evento/command_succeeded.rb,
lib/mongo/monitoring/ evento/cmap/connection_ready.rb,
lib/mongo/monitoring/unified_sdam_log_subscriber.rb,
lib/mongo/monit oring/ evento/cmap/connection_closed.rb,
lib/mongo/monitoring/server_closed_log_subscriber.rb,
lib/mongo/monitoring/ evento/cmap/connection_created.rb,
lib/mongo/monitoring/ evento/server_ heartbeat_failed.rb,
lib/mongo/ Monitoring/server_opening_log_subscriber.rb,
lib/mongo/monitoring/ evento/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/ evento/cmap/connection_checked_in.rb,
lib/mongo/monitoring/ evento/server_description_changed.rb,
lib/mongo/monitoring/ evento/server_
heartbeat_succeeded.rb, lib/mongo/monitoring/
evento/cmap/connection_checked_out.rb, lib/mongo/monitoring/
evento/cmap/connection_check_out_failed.rb, lib/mongo/monitoring/
evento/cmap/connection_check_out_started.rb, lib/mongo/monitoring/server_description_changed_log_subscriber.rb

Visão geral

A classe define o comportamento da API de monitoramento de desempenho.

Desde:

  • 2.1.0

Definido sob namespace

Módulos: Classes de eventos , globais, publicáveis einscritíveis: CmapLogSubscriber, CommandLogSubscriber, SDAMLogSubscriber, ServerClosedLogSubscriber, ServerOpeningLogSubscriber , TopologyChangedLogSubscriber, TopologyClosedLogSubscriber, TopologyOpeningLogSubscriber, UnifiedSdamLogSubscriber

Colapsode resumo constante

COMMAND =

O tópico do comando.

Desde:

  • 2.1.0

'Comando'
CONNECTION_POOL =

O tópico pool de conexões.

Desde:

  • 2.9.0

'Pool de Conexões'
SERVER_Closed =

Tópico fechado do servidor.

Desde:

  • 2.4.0

'Servidor fechado'
SERVER_DESCRIPTION_CHANGED =

A descrição do servidor MongoDB alterou o tópico.

Desde:

  • 2.4.0

'ServerDescriptionChanged'
SERVER_OPENING =

Tópico de abertura do servidor MongoDB.

Desde:

  • 2.4.0

'ServerOpening'
TOPOLOGY_CHANGED =

Topologia alterou o tópico.

Desde:

  • 2.4.0

'Topologia alterada'
Topology_Closed =

Tópico fechado de topologia.

Desde:

  • 2.4.0

'Topologia fechada'
TOPOLOGY_OPENING =

Tópico de abertura de topologia.

Desde:

  • 2.4.0

'Abertura de topologia'
SERVER_HEARTBEAD =

Tópico iniciado de pulsação do servidor.

Desde:

  • 2.7.0

'ServerHeartbeat'

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Métodos incluídos no Inscribable

#subscribe, #subscribers, #subscribers?, #unsubscribe

Métodos incluídos do ID

incluído

Detalhes do construtor

#inicializar(opções = {}) ➤ Monitoramento

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o monitoramento.

Exemplos:

Crie o novo monitoramento.

Monitoring.new(:monitoring => true)

Parâmetros:

  • opções (Hash) (padrão para: {})

    Opções. O construtor do cliente encaminha suas opções para o construtor de monitoramento, embora o monitoramento reconheça apenas um subconjunto das opções reconhecidas pelo cliente.

Hash de opções (opções):

  • :monitoring (verdadeiro, falso)

    Se falso for fornecido, a instância de monitoramento será inicializada sem assinantes de eventos de monitoramento globais e não publicará eventos SDAM. Os eventos de monitoramento de comando ainda serão publicados, e o driver ainda executará o SDAM e monitorará seu cluster para realizar a seleção do servidor. O registro de driver integrado de eventos SDAM será desabilitado porque é implementado por meio da assinatura de eventos SDAM. Client#subscribe terá sucesso para todos os tipos de eventos, mas assinantes para eventos SDAM não serão invocados. Valores diferentes de falso resultam no comportamento padrão que é executar a publicação 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
# Arquivo 'lib/mongo/monitoring.rb', linha 218

def inicializar(opções = {})
  @opções = opções
  Método a menos que opções[:monitoring] != false

  Global.assinantes.cada fazer |topic, assinantes|
    assinantes.cada fazer |assinante|
      se inscrever(topic, assinante)
    end
  end
  se inscrever(Comando, CommandLogSubscriber.Novo(opções))
  # Os eventos CMAP não são registrados por padrão porque isso criará
  # entradas de registro para cada operação realizada pelo driver.
  # subscribe(CONNECTION_POOL, CmapLogSubscriber.new(options))
  se inscrever(SERVER_OPENING, ServerOpeningLogSubscriber.Novo(opções))
  se inscrever(SERVER_Closed, ServerClosedLogSubscriber.Novo(opções))
  se inscrever(SERVER_DESCRIPTION_CHANGED, ServerDescriptionChangedLogSubscriber.Novo(opções))
  se inscrever(TOPOLOGY_OPENING, TopologiaOpeningLogSubscriber.Novo(opções))
  se inscrever(TOPOLOGY_CHANGED, TopologiaChangedLogSubscriber.Novo(opções))
  se inscrever(Topology_Closed, TopologiaClosedLogSubscriber.Novo(opções))
end

Detalhes do atributo da instância

#opções Objeto (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.1.0



240
241
242
# Arquivo 'lib/mongo/monitoring.rb', linha 240

def opções
  @opções
end

Detalhes do método de classe

.Next_operation_id ➤ Inteiro

Usado para gerar IDs de operação exclusivos para vincular eventos.

Exemplos:

Obtenha o ID da próxima operação.

Monitoring.next_operation_id

Retorna:

  • (Inteiro)

    A próxima ID da operação.

Desde:

  • 2.1.0



77
78
79
# Arquivo 'lib/mongo/monitoring.rb', linha 77

def auto.Next_operation_id
  Next_id
end

Detalhes do método de instância

#falhou(tópico, evento) ➤ Objeto

Publique um evento com falha.

Esse método é usado para tipos de evento que têm os eventos iniciado/sucesso/falha, como eventos de comando e pulsação.

Exemplos:

Publique um evento com falha.

monitoring.failed(COMMAND, event)

Parâmetros:

  • topic (string)

    O tópico do evento.

  • Evento (Evento)

    O evento a ser publicado.

Desde:

  • 2.1.0



304
305
306
# Arquivo 'lib/mongo/monitoring.rb', linha 304

def Falhou(topic, Evento)
  Subscribers_for(topic).cada { |assinante| assinante.Falhou(Evento) }
end

#monitoramento?Booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna:

  • (Booleano)

Desde:

  • 2.1.0



243
244
245
# Arquivo 'lib/mongo/monitoring.rb', linha 243

def monitoramento?
  opções[:monitoring] != false
end

#publish_ heartbeat(servidor, awaited: false) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no 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
# Arquivo 'lib/mongo/monitoring.rb', linha 309

def publish_ heartbeat(Servidor, esperado: false)
  se monitoramento?
    started_event = Evento::ServerHeatbeatStarted.Novo(
      Servidor.endereço, esperado: esperado
    )
    começou(SERVER_HEARTBEAD, started_event)
  end

  # A duração que publicamos em eventos de sucesso/falha do heartbeat é
  # o tempo gasto em todo o heartbeat. Isso pode incluir tempo
  # para conectar o soquete (incluindo o handshake TLS), não apenas o tempo
  # gasto na própria chamada hello.
  # A especificação em https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-logging-and-monitoring.md
  # exige que a duração exposta aqui comece com "enviar o
  #mensagem" (olá). Este requisito não faz sentido se,
  # por exemplo, nunca conseguirmos nos conectar ao servidor
  # e, portanto, olá nunca foi enviado.
  start_time = Utilidades.monotonic_time

  começar
    Resultado = rendimento
  salvar StandardError => e
    se monitoramento?
      Evento = Evento::ServerHeatbeatFailed.Novo(
        Servidor.endereço,
        Utilidades.monotonic_time - start_time,
        e,
        esperado: esperado,
        started_event: started_event
      )
      Falhou(SERVER_HEARTBEAD, Evento)
    end
    aumentar
  mais
    se monitoramento?
      Evento = Evento::ServerHeatbeatSucceeded.Novo(
        Servidor.endereço,
        Utilidades.monotonic_time - start_time,
        esperado: esperado,
        started_event: started_event
      )
      bem-sucedido(SERVER_HEARTBEAD, Evento)
    end
    Resultado
  end
end

#publicado(tópico, evento) ➤ Objeto

Publicar um evento.

Este método é usado para tipos de evento que têm apenas um único evento neles.

Parâmetros:

  • topic (string)

    O tópico do evento.

  • Evento (Evento)

    O evento a ser publicado.

Desde:

  • 2.9.0



256
257
258
# Arquivo 'lib/mongo/monitoring.rb', linha 256

def publicado(topic, Evento)
  Subscribers_for(topic).cada { |assinante| assinante.publicado(Evento) }
end

#começou(tópico, evento) ➤ Objeto

Publique um evento iniciado.

Esse método é usado para tipos de evento que têm os eventos iniciado/sucesso/falha, como eventos de comando e pulsação.

Exemplos:

Publique um evento iniciado.

monitoring.started(COMMAND, event)

Parâmetros:

  • topic (string)

    O tópico do evento.

  • Evento (Evento)

    O evento a ser publicado.

Desde:

  • 2.1.0



272
273
274
# Arquivo 'lib/mongo/monitoring.rb', linha 272

def começou(topic, Evento)
  Subscribers_for(topic).cada { |assinante| assinante.começou(Evento) }
end

# bem-sucedido(tópico, evento) ➤ Objeto

Publique um evento bem-sucedido.

Esse método é usado para tipos de evento que têm os eventos iniciado/sucesso/falha, como eventos de comando e pulsação.

Exemplos:

Publique um evento bem-sucedido.

monitoring.succeeded(COMMAND, event)

Parâmetros:

  • topic (string)

    O tópico do evento.

  • Evento (Evento)

    O evento a ser publicado.

Desde:

  • 2.1.0



288
289
290
# Arquivo 'lib/mongo/monitoring.rb', linha 288

def bem-sucedido(topic, Evento)
  Subscribers_for(topic).cada { |assinante| assinante.bem-sucedido(Evento) }
end