Class: ExisRay::BugBunny::ConsumerTracingMiddleware

Inherits:
BugBunny::ConsumerMiddleware::Base
  • Object
show all
Defined in:
lib/exis_ray/bug_bunny/consumer_tracing_middleware.rb

Overview

Consumer middleware para BugBunny que establece el trace context de ExisRay antes de que la gema empiece a procesar el mensaje.

Al correr en el consumer middleware stack (antes de ‘consumer.message_received`), garantiza que todos los logs internos de BugBunny y del controller action incluyan `root_id`, `trace_id` y `source`.

Se registra automáticamente al cargar ExisRay con BugBunny presente. El usuario final no necesita configuración adicional.

Examples:

Registro automático (ocurre en Railtie#after_initialize)

BugBunny.consumer_middlewares.use ExisRay::BugBunny::ConsumerTracingMiddleware

Instance Method Summary collapse

Instance Method Details

#call(delivery_info, properties, body) ⇒ Object

Inyecta el trace context antes de delegar al siguiente middleware. Limpia el contexto en ‘ensure` para no contaminar el próximo mensaje.

Parameters:

  • delivery_info (Bunny::DeliveryInfo)
  • properties (Bunny::MessageProperties)
  • body (String)


24
25
26
27
28
29
30
31
# File 'lib/exis_ray/bug_bunny/consumer_tracing_middleware.rb', line 24

def call(delivery_info, properties, body)
  setup_trace_context(properties)
  @app.call(delivery_info, properties, body)
ensure
  safe_reset(ExisRay::Tracer)
  safe_reset(ExisRay.current_class)
  safe_reset(ExisRay.reporter_class)
end