Clase: Mongo::Tracing::OpenTelemetry::CommandTracer Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
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 del método de instancia colapsar

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.

Parámetros:

  • otel_tracer (OpenTelemetry::Trace::Tracer)

    el rastreador OpenTelemetry.

  • rastreador_padre (Mongo::Tracing::OpenTelemetry::Tracer)

    el rastreador padre para acceder a mapas de contexto compartidos.

  • query_text_max_length (Integer) (por defecto: 0)

    longitud máxima para el texto de query capturado. El valor por defecto es 0 (sin captura de texto de query).



31
32
33
34
35
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 31

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.

Parámetros:



42
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 42

def start_span(mensaje, 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

Parámetros:

Rendimientos:

  • el bloque que representa el comando que se rastreará.

Devuelve:

  • (objeto)

    El resultado del comando.



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Archivo 'lib/mongo/tracing/open_telemetry/command_tracer.rb', línea 59

def trace_command(mensaje, operación, Conexión)
  # 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(mensaje, Conexión)
  ::OpenTelemetry::traza.with_span(span) hacer |s, C|
    rendimiento.tocar hacer |Resultado|
      process_command_result(Resultado, cursor_id(mensaje), C, s)
    end
  end
rescate Excepción => e
  manejar_excepción_de_comando(span, e)
  propagar e
asegurar
  span&.finalizar
end