Class: ExisRay::BugBunny::PublisherTracing

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

Overview

Middleware de publicación para BugBunny::Client.

Inyecta el header de trazabilidad de ExisRay en cada mensaje publicado, permitiendo la propagación del trace context a los servicios consumidores. Esto hace posible correlacionar un request HTTP original con todos los mensajes y logs que genera en el ecosistema de microservicios.

Examples:

Configuración en el cliente

client = BugBunny::Client.new(pool: pool) do |stack|
  stack.use ExisRay::BugBunny::PublisherTracing
end

Configuración en un BugBunny::Resource

class UserResource < BugBunny::Resource
  middleware do |stack|
    stack.use ExisRay::BugBunny::PublisherTracing
  end
end

Instance Method Summary collapse

Instance Method Details

#on_request(env) ⇒ void

This method returns an undefined value.

Inyecta el header de traza antes de publicar el mensaje. Solo actúa si hay un trace context activo (root_id presente). Usa ‘propagation_trace_header` de la configuración, igual que FaradayMiddleware.

Parameters:

  • env (BugBunny::Request)

    El objeto request del mensaje saliente.



30
31
32
33
34
35
36
# File 'lib/exis_ray/bug_bunny/publisher_tracing.rb', line 30

def on_request(env)
  return unless ExisRay::Tracer.root_id.present?

  env.headers[ExisRay.configuration.propagation_trace_header] = ExisRay::Tracer.generate_trace_header
rescue StandardError
  # La propagación de tracing nunca debe interrumpir la publicación de mensajes.
end