Jaeger will accept Zipkin packets.. if you write zipkin it should work
with either Jaeger or Zipkin... so I think it's very nice for a
prototype.


I think we could start working on making it ready for PR... create the
appropriate sub-modules and proper tests.



Is there any API that could receive tracing... I wonder how we would
write testcases...

As for making it ready we could create the sub-module as
artemis-open-tracing.... and get the URI for open tracing from the
configuration.xml


On Tue, Dec 21, 2021 at 2:58 PM Nabwegamo Brenda <brenser...@gmail.com> wrote:
>
> Hello Everyone!
>
> I am an Outreachy Intern implementing distributed tracing with opentelemetry
> <http://opentelemetry.io/> in activemq-artemis under active mentorship
> of @Clebert
> Suconic
>
> *How we wish to Implement this.*
> The current goal for now is writing a Broker-plugin that will send data for
> every message sent to opentelemetry servers either using the API and/or SDK
> with exporters like Jeager <https://www.jaegertracing.io/>, Zipkin
> <https://zipkin.io/>, OTLP etc, and packaging it nicely
>
> I have opened a PR of a working prototype of how this might work.
> <https://github.com/nbrendah/activemq-artemis/commit/a57adecdd56aaf7c5d46bfd065a40e010d29ed0f>
>
> In little explanation of the code,
>
>    - On calling the  initZipkin()  we are initializing and managing the
>    Opentelemetry SDK but this should take place only once, like when the
>    connection is started, or otherwise, we might get some errors when the SDK
>    configuration is called again though some data will be received on Zipkin.
>    - Each time a message is created, before sending it, we create a span
>    and set its attributes (if any) and finally end the span.
>
> *What needs improvement (not well implemented)*
>
>    - I need to come up with a way of executing   initZipkin()  once like at
>    connection creation or something like that and storing the tracer so that
>    we can access it through BrokerPlugin.beforeSend(...)  method.
>    - Each time we need to create a span, we can just get it from the
>    session or message and then create it.
>
>
> *What I have failed to implement for now.*
>
>    - Passing a tracer created on the static main method to the overridden
>    BrokerPlugin.beforeSend(...)  so that we can create a span from the
>    tracer before sending each message
>    - At first I tried exporting the spans to Jeager
>    <https://www.jaegertracing.io/> using the Jeager-example
>    
> <https://github.com/open-telemetry/opentelemetry-java/tree/main/examples/jaeger>
>    but i wasn't receiving data for the last two weeks but Zipkin worked fine
>    on the first attempt.  However, i think Jeager and Zipkin work almost the
>    same according to me
>
>
> *Questions  *
>
>    1. Which tool would you personally go with. Jeager or Zipkin?
>    2. Where can we implement OpenTelemetry SDK initiation so that the
>    initiation runs only once?
>    3. How best can we store a tracer such that it can be accessed before a
>    message is sent.



-- 
Clebert Suconic

Reply via email to