Clase: Mongo::Tracing::OpenTelemetry::Tracer Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Tracing::OpenTelemetry::Tracer
- Definido en:
- lib/mongo/tracing/open_telemetry/tracer.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Instrumento OpenTelemetry para operaciones y comandos de MongoDB.
Resumen de atributos de la instancia colapsar
-
#otel_tracer ⇒ OpenTelemetry::Trace::Tracer
Solo lectura
privado
La implementación del rastreador OpenTelemetry usada para crear rastros (spans) para operaciones y comandos de MongoDB.
Resumen del método de instancia colapsar
-
#cursor_context_map ⇒ Hash
privado
Devuelve el mapa de contexto de cursor para el seguimiento de contextos de OpenTelemetry relacionados con el cursor.
-
#cursor_map_key(session, cursor_id) ⇒ String | nil
privado
Genera una clave única para el seguimiento del cursor en el mapa de contexto.
-
#habilitado? ⇒ booleano
privado
Si OpenTelemetry está habilitado o no.
-
#finish_transaction_span(session) ⇒ Object
privado
Finaliza un intervalo de transacción y desactiva su contexto.
-
#inicializar(habilitado: nil, long_max_texto_consulta: nil, otel_trazador: nil) ⇒ Trazador
constructor
privado
Inicializa un nuevo rastreador OpenTelemetry.
-
#parent_context_for(operation_context, cursor_id) ⇒ OpenTelemetry::Context | nil
privado
Determina el contexto principal de OpenTelemetry para una operación.
-
#start_transaction_span(sesión) ⇒ objeto
privado
Inicia un periodo de transacción y activa su contexto.
-
#trace_command(mensaje, operation_context, connection) { ... } ⇒ Object
privado
Haga un seguimiento de un comando de MongoDB.
-
#trace_operation(operación, contexto_de_operación, op_name: nil) { ... } ⇒ Objeto
privado
Realizar un seguimiento de una operación de MongoDB.
-
#transaction_context_map ⇒ Hash
privado
Devuelve el mapa de contexto de la transacción para rastrear los contextos de transacciones activos.
-
#transaction_map_key(session) ⇒ String | nil
privado
Genera una clave única para el seguimiento de transacciones.
-
#transaction_span_map ⇒ Hash
privado
Devuelve el mapa de tramos de transacción para rastrear los tramos de transacciones activas.
-
#transaction_token_map ⇒ Hash
privado
Devuelve el mapa de tokens de transacción para el seguimiento de los tokens de contexto adjuntos.
Detalles del Constructor
#initialize(enabled: nil, query_text_max_length: nil, otel_tracer: nil) ⇒ Tracer
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicializa un nuevo rastreador OpenTelemetry.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 42 def inicializar(activado: nulo, query_text_max_length: nulo, otel_tracer: nulo) @enabled = si habilitado.nil? %w[true 1 Sí].incluir?(ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED']&.minúscula) else habilitado end check_opentelemetry_loaded @query_text_max_length = si query_text_max_length.nil? ENV['OTEL_RUBY_INSTRUMENTATION_MONGODB_QUERY_TEXT_MAX_LENGTH'].to_i else query_text_max_length end @otel_tracer = otel_tracer || inicializar_trazador @operation_tracer = OperationTracer.Nuevo(@otel_tracer, sí mismo) @command_tracer = CommandTracer.Nuevo(@otel_tracer, sí mismo, query_text_max_length: @query_text_max_length) end |
Detalles de atributo de instancias
#otel_tracer ⇒ OpenTelemetry::Trace::Tracer (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve la implementación de trazador de OpenTelemetry utilizada para crear tramos para las operaciones y comandos de MongoDB.
27 28 29 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 27 def otel_tracer @otel_tracer end |
Detalles del método de instancia
#cursor_context_map ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el mapa de contexto de cursor para el seguimiento de contextos de OpenTelemetry relacionados con el cursor.
145 146 147 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 145 def cursor_context_map @cursor_context_map ||= {} end |
#cursor_map_key(sesión, cursor_id) ⇒ string | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Genera una clave única para el seguimiento del cursor en el mapa de contexto.
155 156 157 158 159 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 155 def cursor_map_key(sesión, cursor_id) return si cursor_id.nil? || sesión.nil? "#{session.session_id['id'].to_uuid}-#{cursor_id}" end |
#¿activado? ⇒ booleano
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Si OpenTelemetry está habilitado o no.
62 63 64 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 62 def ¿habilitado? @enabled end |
#finish_transaction_span(session) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Finaliza un intervalo de transacción y desactiva su contexto.
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 123 def finish_transaction_span(sesión) return a menos que ¿habilitado? llave = transaction_map_key(sesión) return a menos que llave span = transaction_span_map.borrar(llave) token = transaction_token_map.borrar(llave) transaction_context_map.borrar(llave) return a menos que span && token begin span.finalizar asegurar ::OpenTelemetry::Context.detach(token) end end |
#parent_context_for(operation_context, cursor_id) ⇒ OpenTelemetry::Context | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Determina el contexto principal de OpenTelemetry para una operación.
Devuelve el contexto de la transacción si la operación forma parte de una transacción, de lo contrario devuelve nil. La anidación de contexto basada en cursor no está implementada actualmente.
170 171 172 173 174 175 176 177 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 170 def contexto_principal_para(operation_context, cursor_id) si (llave = transaction_map_key(operation_context.sesión)) transaction_context_map[llave] elsif (_key = cursor_map_key(operation_context.sesión, cursor_id)) # Devolvemos nil aquí a menos que decidamos cómo anidar las operaciones del cursor. nulo end end |
#start_transaction_span(session) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicia un periodo de transacción y activa su 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 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 95 def start_transaction_span(sesión) return a menos que ¿habilitado? llave = transaction_map_key(sesión) return a menos que llave # Crear el período de la transacción con atributos mínimos span = @otel_tracer.start_span( 'transaction', atributos: { 'db.system.name' => 'mongodb' }, kind: cliente ) # Crear un contexto que contenga este intervalo context = ::OpenTelemetry::traza.context_with_span(span) # Activa el contexto y almacena el token para su posterior separación token = ::OpenTelemetry::Context.adjuntar(context) # Almacena span, token y contexto para su recuperación posterior transaction_span_map[llave] = span transaction_token_map[llave] = token transaction_context_map[llave] = context end |
#trace_command(mensaje, contexto_operativo, conexión) { ... } ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Haga un seguimiento de un comando de MongoDB.
86 87 88 89 90 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 86 def trace_command(, operation_context, Conexión, &bloque) return rendimiento a menos que ¿habilitado? @command_tracer.trace_command(, operation_context, Conexión, &bloque) end |
#trace_operation(operación, operación_contexto, nombre_op: nil) { ... } ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Realizar un seguimiento de una operación de MongoDB.
73 74 75 76 77 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 73 def trace_operation(Operación, operation_context, op_name: nulo, &bloque) return rendimiento a menos que ¿habilitado? @operation_tracer.trace_operation(Operación, operation_context, op_name: op_name, &bloque) end |
#transaction_context_map ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el mapa de contexto de la transacción para rastrear los contextos de transacciones activos.
182 183 184 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 182 def transaction_context_map @transaction_context_map ||= {} end |
#transaction_map_key(sesión) ⇒ String | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Genera una clave única para el seguimiento de transacciones.
Devuelve nil para sesiones implícitas o sesiones que no están en una transacción.
207 208 209 210 211 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 207 def transaction_map_key(sesión) return si sesión.nil? || sesión.implicit? || !sesión.en_transacción? "#{session.session_id['id'].to_uuid}-#{session.txn_num}" end |
#transaction_span_map ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el mapa de tramos de transacción para rastrear los tramos de transacciones activas.
189 190 191 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 189 def transaction_span_map @transaction_span_map ||= {} end |
#transaction_token_map ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el mapa de tokens de transacción para el seguimiento de los tokens de contexto adjuntos.
196 197 198 |
# Archivo 'lib/mongo/tracing/open_telemetry/tracer.rb', línea 196 def transaction_token_map @transaction_token_map ||= {} end |