Classe: Mongo::Monitoramento
- Herda:
-
Objeto
- Objeto
- Mongo::Monitoring
- 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.
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.
'Comando'.congelar
- CONNECTION_POOL =
O tópico pool de conexões.
'ConnectionPool'.congelar
- SERVER_Closed =
Tópico fechado do servidor.
'ServerClosed'.congelar
- SERVER_DESCRIPTION_CHANGED =
A descrição do servidor MongoDB alterou o tópico.
'ServerDescriptionChanged'.congelar
- SERVER_OPENING =
Tópico de abertura do servidor MongoDB.
'ServerOpening'.congelar
- TOPOLOGY_CHANGED =
Topologia alterou o tópico.
'TopologyChanged'.congelar
- Topology_Closed =
Tópico fechado de topologia.
'TopologyClosed'.congelar
- TOPOLOGY_OPENING =
Tópico de abertura de topologia.
'TopologyOpening'.congelar
- SERVER_HEARTBEAD =
Tópico iniciado de pulsação do servidor.
'ServerHeartbeat'.congelar
Recolhimento do Resumo do atributo de instância
- #opções ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de classe
-
.Next_operation_id ➤ Inteiro
Usado para gerar IDs de operação exclusivos para vincular eventos.
Recolhimento do Resumo do método de instância
-
#falhou(tópico, evento) ➤ Objeto
Publique um evento com falha.
-
#inicializar(opções = {}) ➤ Monitoramento
construtor
privado
Inicialize o monitoramento.
- #monitoramento? ➤ Booleano privado
- #publish_ heartbeat(servidor, aguardado: falso) ➤ Objeto privado
-
#publicado(tópico, evento) ➤ Objeto
Publicar um evento.
-
#começou(tópico, evento) ➤ Objeto
Publique um evento iniciado.
-
# bem-sucedido(tópico, evento) ➤ Objeto
Publique um evento bem-sucedido.
Métodos incluídos no Inscribable
#subscribe, #subscribers, #subscribers?, #unsubscribe
Métodos incluídos do ID
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.
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 = se [:monitoring] != false Global.assinantes.cada fazer |topic, assinantes| assinantes.cada fazer |assinante| se inscrever(topic, assinante) end end se inscrever(Comando, CommandLogSubscriber.Novo()) # 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()) se inscrever(SERVER_Closed, ServerClosedLogSubscriber.Novo()) se inscrever(SERVER_DESCRIPTION_CHANGED, ServerDescriptionChangedLogSubscriber.Novo()) se inscrever(TOPOLOGY_OPENING, TopologiaOpeningLogSubscriber.Novo()) se inscrever(TOPOLOGY_CHANGED, TopologiaChangedLogSubscriber.Novo()) se inscrever(Topology_Closed, TopologiaClosedLogSubscriber.Novo()) 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.
242 243 244 |
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 242 def @opções end |
Detalhes do método de classe
.Next_operation_id ➤ Inteiro
Usado para gerar IDs de operação exclusivos para vincular eventos.
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.
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.
245 246 247 |
# File 'build/ruby-driver-v2.19/lib/mongo/monitoring.rb', linha 245 def monitoramento? [: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.
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.
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.
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.
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 |