es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir un emisor de trazas personalizado en Spring Sleuth / Brave

Mi empresa tiene una solución personalizada de seguimiento distribuido.
Tengo lista una biblioteca de cliente/proxy en Java para ello, que es capaz de enviar trazas/españas al servidor.

Sin embargo, me gustaría integrarlo con Spring Boot Sleuth / Brave, para implementar algún tipo de puente desde Brave, de modo que Brave pueda utilizar mis bibliotecas de cliente/proxy para enviar trazas/españas.

¿Cómo puedo personalizar únicamente la parte del remitente en Brave?

Otra opción sería implementar desde cero todas las interfaces de API de Sleuth (Tracer, Span, TraceContext, etc.), lo cual es una tarea enorme.

Me gustaría utilizar la implementación de Brave, solo para inyectar algún tipo de puente/adaptador que utilice mi cliente/proxy personalizado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para personalizar solo la parte del remitente en Brave, puede seguir los siguientes pasos:

    1. Utilice la biblioteca de instrumentación de Brave para Spring Boot Sleuth.
    2. Configure el bean Reporter en el contexto de la aplicación Spring para usar su cliente/proxy personalizado para enviar trazas/span.

    3. Implemente una clase SpanReporter que extienda la clase AsyncSpanHandler de Brave, e inyecte su cliente/proxy personalizado en ella.

    4. Sobrescriba el método handleStartedSpan en su clase SpanReporter para usar su cliente/proxy personalizado para enviar trazas/span.

    5. Inyecte su instancia de SpanReporter en la configuración del bean Tracing, y establezcala como el spanHandler para Brave.

    Con los pasos anteriores, Brave usará su cliente/proxy personalizado para enviar trazas/span sin la necesidad de implementar todas las interfaces de la API de Sleuth desde cero.

Comments are closed.