Getting selected as an Outreachy intern at OpenTracing and Jaeger was like a dream come true. The projects are based on distributed tracing and systems. Now, what is that exactly? This is how it was described on the Outreachy website:
People building microservices at scale need tracing across distributed systems to understand how and why a system is misbehaving. Source code instrumentation can been complex, fragile, expensive, and difficult to maintain, which is why the CNCF has two tracing projects: OpenTracing and Jaeger. OpenTracing is a vendor-neutral open standard for distributed tracing. Jaeger is a concrete set of tracers and a trace storage backend, for usage on applications and microservices instrumented with OpenTracing.
After reading through this paragraph, I was even more confused but more than that willing to learn what distributed tracing was all about! And so this is how my journey began with OpenTracing and Jaeger.
During the one month of contributions I had come to develop a greater understanding of the project that once seemed daunting when I had initially been a beginner to it. Over the weekly meetings I learned more and more about the project, its complexities and above all, its objectives. But there was research to be done on my end for comprehending the project better and understanding the fundamentals. So here’s how I went about it!
The OpenTracing website is a great resource for building the core understanding of the project, it helped me in constructing a framework of the OT project and cleared the basic terminologies. The website links to some great tutorials on Medium and GitHub, that can be either followed or coded along including the OpenTracing HotRide tutorial and OpenTracing-tutorials by Yuri Shkuro.
Opentracing-tutorials by Yuri Shkuro
Simultaneously, I had started following some tutorials on OpenTracing by Yuri Shkuro for gaining deeper insights into the project. The tutorials are written in all the major languages including Java, Python, NodeJS and GO. And just a few days ago even C# tutorials have been added to the repository!
The tutorials are easy to follow along and cover all major concepts of the OT project. Diving straight to code, these tutorials allowed me to get the gist of the OT project.
Read the READMEs!
As with any software project, the best source of information are the READMEs ! OpenTracing READMEs provide in-depth information on some of the concepts not found else where on the internet including Tags, Spans, Scope, Threads, Logs and many more. For developers seeking to contribute in OpenTracing, this is a great resource for a thorough understanding of the project.
Some research (*cross that* ) A lot of Research!
As a beginner to the “tracing” world, I remember reading through the OpenTracing docs available online and not understanding about half of the words in the sentence during my initial days! There’s no short-cut to learning these concepts, so I “googled” each and every word until I could read through the sentence again with proper understanding. Not every word had a clear definition, and not every definition had a clear meaning. Often a times I ended up scrolling through long conversations on GitHub pertaining to the development of a particular concept or piece of the OT API.
I aim to dive deeper into these concepts for helping the OpenTracing & Jaeger communities in documenting and resolving any other issues during the summertime!