Classe: Mongo::Monitoramento

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
ID, Inscritível
Definido em:
build/ruby-driver-v2.19/lib/mongo/monitoring.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/publishable.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/base.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/cmap_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_closed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/sdam_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/command_failed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_opening.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_ready.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/command_started.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/topology_closed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/command_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_closed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/topology_changed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/topology_opening.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_cleared.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/pool_created.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/command_succeeded.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_ready.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/unified_sdam_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_closed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/server_closed_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_created.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_ heartbeat_failed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/server_opening_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_ heartbeat_started.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/topology_closed_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/topology_changed_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/topology_opening_log_subscriber.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_checked_in.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_description_changed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/server_ heartbeat_succeeded.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_checked_out.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb,
build/ruby-driver-v2.19/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb,
build/ruby-driver-v2.19/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'.congelar
CONNECTION_POOL =

O tópico pool de conexões.

Desde:

  • 2.9.0

'ConnectionPool'.congelar
SERVER_Closed =

Tópico fechado do servidor.

Desde:

  • 2.4.0

'ServerClosed'.congelar
SERVER_DESCRIPTION_CHANGED =

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

Desde:

  • 2.4.0

'ServerDescriptionChanged'.congelar
SERVER_OPENING =

Tópico de abertura do servidor MongoDB.

Desde:

  • 2.4.0

'ServerOpening'.congelar
TOPOLOGY_CHANGED =

Topologia alterou o tópico.

Desde:

  • 2.4.0

'TopologyChanged'.congelar
Topology_Closed =

Tópico fechado de topologia.

Desde:

  • 2.4.0

'TopologyClosed'.congelar
TOPOLOGY_OPENING =

Tópico de abertura de topologia.

Desde:

  • 2.4.0

'TopologyOpening'.congelar
SERVER_HEARTBEAD =

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

Desde:

  • 2.7.0

'ServerHeartbeat'.congelar

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



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 220

def inicializar(opções = {})
  @opções = opções
  se 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
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



242
243
244
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 242

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



79
80
81
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 79

def auto.Next_operation_id
  auto.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



306
307
308
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 306

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



245
246
247
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 245

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



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
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 311

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-monitoring.rst
  # 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 => exc
    se monitoramento?
      Evento = Evento::ServerHeatbeatFailed.Novo(
        Servidor.endereço,
        Utilidades.monotonic_time - start_time,
        exc,
        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



258
259
260
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 258

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



274
275
276
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 274

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



290
291
292
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 290

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