Module: ExisRay::ActiveResourceInstrumentation

Defined in:
lib/exis_ray/active_resource_instrumentation.rb

Overview

Módulo diseñado para interceptar e instrumentar las peticiones HTTP salientes realizadas con ActiveResource. Utiliza el patrón ‘prepend` para envolver el método `headers` original sin romper la cadena de herencia.

Su función principal es inyectar automáticamente el header de trazabilidad (Trace ID) en todas las peticiones salientes para mantener la traza distribuida entre microservicios.

Instance Method Summary collapse

Instance Method Details

#headersHash

Sobrescribe el método ‘headers` de ActiveResource para inyectar el Trace ID actual.

Lógica de inyección:

  1. Obtiene los headers definidos originalmente por el modelo o la request.

  2. Verifica si existe un contexto de traza activo (Root ID).

  3. Si existe, genera el header formateado (AWS/Wispro) y lo fusiona con los headers originales.

Returns:

  • (Hash)

    Un hash de headers HTTP que incluye el header de trazabilidad si corresponde.



18
19
20
21
22
23
24
25
# File 'lib/exis_ray/active_resource_instrumentation.rb', line 18

def headers
  original_headers = super
  return original_headers unless ExisRay::Tracer.root_id.present?

  inject_trace_header(original_headers)
rescue StandardError
  original_headers
end