Classe: Mongo::Trace::OpenTelemetry::CommandTracer Private

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Monitoramento::Evento::Seguro
Definido em:
lib/mongo/trasing/open_telemetry/command_tracer.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

O CommandTracer é responsável por rastrear comandos do servidor MongoDB usando OpenTelemetry.

Colapsode resumo constante

HELLO_COMMANDS =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Comandos para os quais um intervalo NÃO DEVE ser criado. A especificação OpenTelemetry exige que os drivers ignorem os intervalos de comandos para comandos confidenciais listados na especificação de registro e monitoramento de comandos. Além disso, ignoramos hello / hello legado em todas as formas — são tráfego de handshake/pulsação e apenas adicionariam ruído aos rastreamentos.

%w[olá isMaster isMaster].congelar

Constantes incluídas no Monitoring::Event::Secure

Monitoramento::Evento::Secure::REDACTED_COMMANDS

Recolhimento do Resumo do método de instância

Métodos incluídos do Monitoring::Event::Secure

#compression_allowed?, #editado, #sensitive?

Detalhes do construtor

0 .

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.

Inicializa um novo CommandTracer.

Parâmetros:

  • orel_tracer (OpenTelemetry::Trace::Tracer)

    o rastreador OpenTelemetry.

  • parent_tracer (Mongo::Trace::OpenTelemetry::Tracer)

    o rastreador principal para acessar mapas de contexto compartilhados.

  • query_text_max_long (Inteiro) (padrão para: 0)

    comprimento máximo para texto de query capturado. Padrão para 0 (nenhuma captura de texto de query).



40
41
42
43
44
# arquivo 'lib/mongo/trasing/open_telemetry/command_tracer.rb', linha 40

def inicializar(orel_tracer, parent_tracer, query_text_max_long: 0)
  @otil_tracer = orel_tracer
  @parent_tracer = parent_tracer
  @query_text_max_ comprimento = query_text_max_long
end

Detalhes do método de instância

#start_span(message, operation_context, connection) ➤ 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.

Inicia um span para um comando MongoDB .

Parâmetros:



51
# arquivo 'lib/mongo/trasing/open_telemetry/command_tracer.rb', linha 51

def start_span(mensagem, operation_context, Conexão); end

#rastreamento_command(message, _operation_context, connection) {... } ➤ 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.

Rastreie um comando MongoDB .

Cria uma extensão OpenTelemetry para o comando, capturando atributos como nome do comando, nome do banco de dados , nome da coleção, endereço do servidor , IDs de conexão e, opcionalmente, texto de query. A extensão é automaticamente aninhada sob a extensão da operação atual e é concluída quando o comando é concluído ou falha.

rubocop:disable Lint/RescueException

Parâmetros:

Rendimento:

  • o bloco representando o comando a ser rastreado.

Retorna:

  • (Objeto)

    O resultado do comando.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# arquivo 'lib/mongo/trasing/open_telemetry/command_tracer.rb', linha 68

def rastreamento_command(mensagem, operação, Conexão)
  Método rendimento se skip_tracing?(mensagem)

  # Os comandos devem sempre ser aninhados sob sua extensão de operação, não diretamente sob
  # a extensão da transação. Não passe with_parent para usar a resolução automática dos pais
  # do intervalo ativo atualmente (o intervalo de operações).
  extensão = create_command_span(mensagem, Conexão)
  ::OpenTelemetry::RASTREAR.with_span(extensão) fazer |s, C|
    rendimento.toque fazer |Resultado|
      process_command_result(Resultado, cursor_id(mensagem), C, s)
    end
  end
salvar Exceção => e
  handle_command_exceção(extensão, e)
  aumentar e
garantir
  extensão&.Conclusão
end