Clase: Mongo::Tracing::OpenTelemetry::CommandTracer Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Rastreo::OpenTelemetry::RastreadorDeComandos
- Incluye:
- supervisión::evento::Secure
- Definido en:
- lib/mongo/tracing/open_telemetry/command_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.
CommandTracer es responsable de rastrear los comandos del servidor de MongoDB usando OpenTelemetry.
Resumen de constantes colapsar
- HELLO_COMMANDS =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Comandos para los que NO se DEBE crear un intervalo. La especificación de OpenTelemetry requiere que los drivers omitan los intervalos de comandos para los comandos confidenciales enumerados en la especificación de registro y supervisión de comandos. Además, omitimos hello / legacy hello en todas sus formas — se trata de tráfico de protocolo de enlace/latido y solo añadiría ruido a los seguimientos.
%w[hola esprincipal esMaestro].freeze
Constantes incluidas de supervisión::evento::Secure
Supervisión::Evento::Seguro::COMANDOS_REDACTADOS
Resumen del método de instancia colapsar
-
#initialize(otel_tracer, parent_tracer, query_text_max_length: 0) ⇒ CommandTracer
constructor
privado
Inicializa un nuevo CommandTracer.
-
#start_span(mensaje, contexto_operativo, conexión) ⇒ Objeto
privado
Inicia un intervalo para un comando MongoDB.
-
#trace_command(message, _operation_context, connection) { ... } ⇒ Object
privado
Haga un seguimiento de un comando de MongoDB.
Métodos incluidos de supervisión::evento::Secure
#compression_allowed?, #redacted, #sensitive?
Detalles del Constructor
#initialize(otel_tracer, parent_tracer, query_text_max_length: 0) ⇒ CommandTracer
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 CommandTracer.
40 41 42 43 44 |
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 40 def inicializar(otel_tracer, rastreador_padre, query_text_max_length: 0) @otel_tracer = otel_tracer @parent_tracer = rastreador_padre @query_text_max_length = query_text_max_length end |
Detalles del método de instancia
#start_span(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.
Inicia un intervalo para un comando MongoDB.
51 |
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 51 def start_span(, operation_context, Conexión); end |
#trace_command(mensaje, _operacion_contex, connection) { ... } ⇒ 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.
Crea un span de OpenTelemetry para el comando, capturando atributos como el nombre del comando, el nombre de la base de datos, el nombre de la colección, la dirección del servidor, los IDs de conexión y, opcionalmente, el texto de la query. El lapso se anida automáticamente bajo el lapso de la operación actual y se finaliza cuando el comando se completa o falla.
rubocop:deshabilitar Lint/RescueException
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 68 def trace_command(, operación, Conexión) return rendimiento si skip_tracing?() # Los comandos siempre deben anidarse bajo su intervalo de operación, no directamente debajo # el lapso de la transacción. No pasar con_parent para usar la resolución automática de padres # del span que está actualmente activo (el span de la operación). span = crear_span_de_comando(, Conexión) ::OpenTelemetry::traza.with_span(span) hacer |s, C| rendimiento.tocar hacer |Resultado| process_command_result(Resultado, cursor_id(), C, s) end end rescate Excepción => e manejar_excepción_de_comando(span, e) propagar e asegurar span&.finalizar end |