Classe: Mongo::Trace::OpenTelemetry::Tracer Private
- Herda:
-
Objeto
- Objeto
- Mongo::Trace::OpenTelemetry::Tracer
- Definido em:
- lib/mongo/trasing/open_telemetry/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.
Rastreador OpenTelemetry para operações e comandos MongoDB .
Recolhimento do Resumo do atributo de instância
-
#otel_tracer ⇒ OpenTelemetry::Trace::Tracer
Somente leitura
privado
A implementação do rastreador OpenTelemetry usada para criar spans para operações e comandos MongoDB .
Recolhimento do Resumo do método de instância
-
#cursor_context_map ⇒ Hash
privado
Retorna o mapa de contexto do cursor para rastrear contextos OpenTelemetry relacionados ao cursor.
-
#cursor_map_key(sessão, cursor_id) ➤ String | nada
privado
Gera uma chave exclusiva para rastreamento do cursor no mapa de contexto.
-
#habilitado? ➤ Booleano
privado
Se o OpenTelemetry está ativado ou não.
-
#finish_transaction_span(sessão) ➤ Objeto
privado
Conclua um período de transação e desative seu contexto.
-
#initialize(enabled: nil, query_text_max_longitude: nil, ocel_tracer: nil) ➤ Tracer
construtor
privado
Inicializa um novo rastreador OpenTelemetry.
-
#parent_context_for(operation_context, cursor_id) ➤ OpenTelemetry::Context | nada
privado
Determina o contexto OpenTelemetry pai para uma operação.
-
#start_transaction_span(sessão) ➤ Objeto
privado
Inicie um período de transação e ative seu contexto.
-
#rastreamento_command(message, operation_context, connection) {... } ➤ Objeto
privado
Rastreie um comando MongoDB .
-
#rastreamento_operation(operation, operation_context, op_name: nil) {... } ⇒ Object
privado
Rastreie uma operação MongoDB .
-
#transaction_context_map ⇒ Hash
privado
Retorna o mapa de contexto da transação para rastrear contextos de transação ativos.
-
#transaction_map_key(sessão) ➤ String | nada
privado
Gera uma chave exclusiva para rastreamento de transações.
-
#transaction_span_map ⇒ Hash
privado
Retorna o mapa de extensão de transações para rastrear extensões de transação ativas.
-
#transaction_token_map ⇒ Hash
privado
Retorna o mapa de token de transação para rastrear tokens de anexação de contexto.
Detalhes do construtor
#initialize(enabled: nil, query_text_max_longitude: nil, ocel_tracer: nil) ➤ Tracer
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 rastreador OpenTelemetry.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 42 def inicializar(habilitado: nada, query_text_max_long: nada, omel_tracer: nada) @enabled = se habilitado.nada? %w[true 1 sim].incluir?(ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED']&.downcase) mais habilitado end check_opentelemetry_loaded @query_text_max_ comprimento = se query_text_max_long.nada? ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_QUERY_TEXT_MAX_LENGTH'].to_i mais query_text_max_long end @otil_tracer = orel_tracer || initialize_tracer @operation_tracer = OperationTracer.Novo(@otil_tracer, auto) @command_tracer = CommandTracer.Novo(@otil_tracer, auto, query_text_max_long: @query_text_max_ comprimento) end |
Detalhes do atributo da instância
.
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 a implementação do rastreador OpenTelemetry usada para criar spans para operações e comandos MongoDB .
27 28 29 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 27 def orel_tracer @otil_tracer end |
Detalhes do método de instância
#cursor_context_map ⇒ Hash
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 o mapa de contexto do cursor para rastrear contextos OpenTelemetry relacionados ao cursor.
145 146 147 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 145 def cursor_context_map @cursor_context_map ||= {} end |
#cursor_map_key(sessão, cursor_id) ➤ String | nada
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.
Gera uma chave exclusiva para rastreamento do cursor no mapa de contexto.
155 156 157 158 159 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 155 def cursor_map_key(session, cursor_id) Método se cursor_id.nada? || session.nada? "#{session.session_id['id'].to_uuid}-#{cursor_id}" end |
#habilitado? ➤ 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.
Se o OpenTelemetry está ativado ou não.
62 63 64 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 62 def habilitado? @enabled end |
#finish_transaction_span(sessão) ➤ 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.
Conclua um período de transação e desative seu contexto.
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 123 def finish_transaction_span(session) Método a menos que habilitado? chave = transaction_map_key(session) Método a menos que chave extensão = transaction_span_map.excluir(chave) token = transaction_token_map.excluir(chave) transaction_context_map.excluir(chave) Método a menos que extensão && token começar extensão.Conclusão garantir ::OpenTelemetry::Contexto.detach(token) end end |
#parent_context_for(operation_context, cursor_id) ➤ OpenTelemetry::Context | nada
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.
Determina o contexto OpenTelemetry pai para uma operação.
Retorna o contexto da transação se a operação fizer parte de uma transação, caso contrário, retorna zero. O aninhamento de contexto baseado em cursor não está implementado atualmente.
170 171 172 173 174 175 176 177 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 170 def parent_context_for(operation_context, cursor_id) se (chave = transaction_map_key(operation_context.session)) transaction_context_map[chave] elsif (_key = cursor_map_key(operation_context.session, cursor_id)) # Retornamos nulo aqui, a menos que decidamos como aninhar as operações do cursor. nada end end |
#start_transaction_span(sessão) ➤ 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.
Inicie um período de transação e ative seu contexto.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 95 def start_transaction_span(session) Método a menos que habilitado? chave = transaction_map_key(session) Método a menos que chave # Crie a extensão da transação com atributos mínimos extensão = @otil_tracer.start_span( 'transaction', atributos: { ' db.system.name ' => 'mongodb' }, kind: :cliente ) # Crie um contexto contendo esta extensão Contexto = ::OpenTelemetry::RASTREAR.context_with_span(extensão) # Ative o contexto e armazene o token para desapego posterior token = ::OpenTelemetry::Contexto.anexar(Contexto) # Armazene extensão, token e contexto para recuperação posterior transaction_span_map[chave] = extensão transaction_token_map[chave] = token transaction_context_map[chave] = Contexto 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 .
86 87 88 89 90 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 86 def rastreamento_command(, operation_context, Conexão, &noum: bloco ; verb: bloquear) Método rendimento a menos que habilitado? @command_tracer.rastreamento_command(, operation_context, Conexão, &noum: bloco ; verb: bloquear) end |
#rastreamento_operation(operation, operation_context, op_name: nil) {... } ⇒ Object
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 uma operação MongoDB .
73 74 75 76 77 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 73 def rastreamento_operação(operação, operation_context, op_name: nada, &noum: bloco ; verb: bloquear) Método rendimento a menos que habilitado? @operation_tracer.rastreamento_operação(operação, operation_context, op_name: op_name, &noum: bloco ; verb: bloquear) end |
#transaction_context_map ⇒ Hash
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 o mapa de contexto da transação para rastrear contextos de transação ativos.
182 183 184 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 182 def transaction_context_map @transaction_context_map ||= {} end |
#transaction_map_key(sessão) ➤ String | nada
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.
Gera uma chave exclusiva para rastreamento de transações.
Retorna nulo para sessões implícitas ou sessões que não estejam em uma transação.
207 208 209 210 211 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 207 def transaction_map_key(session) Método se session.nada? || session.implícito? || !session.in_transaction? "#{session. session_id[ ' id ' ]. to_uuid}-#{session.txn_num}" end |
#transaction_span_map ⇒ Hash
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 o mapa de extensão de transações para rastrear extensões de transação ativas.
189 190 191 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 189 def transaction_span_map @transaction_span_map ||= {} end |
#transaction_token_map ⇒ Hash
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 o mapa de token de transação para rastrear tokens de anexação de contexto.
196 197 198 |
# File 'lib/mongo/trasing/open_telemetry/tracer.rb', linha 196 def transaction_token_map @transaction_token_map ||= {} end |