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