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

Herda:
Objeto
  • Objeto
mostrar tudo
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.

Recolhimento do Resumo do método de instância

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



31
32
33
34
35
# arquivo 'lib/mongo/trasing/open_telemetry/command_tracer.rb', linha 31

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:



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

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.



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# arquivo 'lib/mongo/trasing/open_telemetry/command_tracer.rb', linha 59

def rastreamento_command(mensagem, operação, Conexão)
  # 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