LFX Mentorship with CNCF- Jaeger, A Journey

Saransh Shankar
5 min readAug 29, 2024

--

I am excited to share my incredible experience as an LFX Mentee, working on Jaeger, an open-source project that focuses on observability within the cloud-native ecosystem. My passion for open-source technology and a deep interest in observability led me to explore the world of Jaeger, a project that seamlessly integrates with the DevOps landscape, making monitoring and observability more accessible and efficient.

To know more about Jaeger, Please take a look at this article.

Getting Started with LFX Mentorship

My journey began with the CNCF LFX Mentorship program application, where I expressed my enthusiasm for DevOps and observability. I outlined my background, my interest in cloud-native technologies, and how these passions aligned with Jaeger’s mission to enhance observability through distributed tracing. When I received the acceptance notification, I was thrilled — it was the perfect opportunity to immerse myself in an area I was passionate about.

The onboarding experience was seamless, thanks to my mentors Yuri Shkuro, Jonah Kowall and Yash Sharma. I was introduced to the project’s history, its role within the CNCF ecosystem, and its intricate architecture. This foundational knowledge was crucial for me to make meaningful contributions.

Diving into the Project

Link

During my mentorship, my primary focus was on implementing a unified telemetry container for both V1 and V2 components of Jaeger. My tasks revolved around integrating OpenTelemetry (OTEL) for metrics and migrating away from older tracing packages to OTEL’s more advanced framework. This role offered a hands-on experience with Jaeger’s codebase, allowing me to sharpen my coding skills while tackling real-world challenges in a production-ready, open-source environment.

Understanding the nuances of observability was a critical part of my role. I delved into how Jaeger handles microservices tracing and how observability tools like OpenTelemetry can be seamlessly integrated. This experience significantly enhanced my understanding of distributed tracing and monitoring, which are vital for optimizing performance and troubleshooting issues in microservices architectures.

Please do take a look at my progress and learning throughout my
PR Journey at Jaeger.

Key Achievements and Learnings

A key milestone of my work involved comparing metrics emitted by Jaeger V1 and V2 to ensure that the V2 components would emit the same specific metrics as V1. I developed a detailed YAML configuration to replicate the observability features of V1 in V2, ensuring that internal metrics, not just general OTEL metrics, were exposed at the `/metrics` endpoint.

I also worked on integrating the OTEL implementation of the Metrics API into various components such as Query and Jaeger-Storage. This comprehensive approach ensured a standardized metrics collection across different components, aligning Jaeger’s observability features with modern OTEL standards.

Another significant achievement was my involvement in end-to-end (E2E) storage integration tests for Jaeger V2. I focused on refining the `integration.go` file to validate storage backends effectively, which was crucial for ensuring the reliability and robustness of the Jaeger system in production environments.

This also involved streamlining integration test suites by generalising independant unit test into the shared test suites.

For Example: Move Archive Test and Enable Archive Tests for Cassandra.

In addition, I integrated a health check feature for Jaeger V2 components using the OTEL-Collector Contrib’s health check package. This integration was vital for monitoring the health and activity of the V2 components, providing real-time feedback on their status and ensuring that the Jaeger system remains resilient and responsive.

Challenges and Overcoming Them

Like any meaningful project, my journey was not without its challenges. One of the most complex tasks was achieving compatibility between Jaeger V1 and V2 metrics while ensuring the migration to OpenTelemetry did not disrupt existing functionalities. I faced issues with test cases, particularly in handling segmentation faults when running tests involving non-empty configurations and fake storage hosts. However, with perseverance, guidance from my mentors, and incremental improvements, I was able to resolve these challenges.

Another challenge was implementing the health check integration across various components. Ensuring that each component’s health status was accurately reported required a deep understanding of both Jaeger’s architecture and the OTEL-Collector Contrib’s health check package. Working closely with my mentors, I was able to set up robust health checks that monitor the status and availability of Jaeger’s V2 components, adding a critical layer of reliability to the project.

The Value of Mentorship and Community

The guidance I received from my mentor Yuri Shkuro and the Jaeger community was invaluable. They were always ready to assist, providing feedback and sharing their extensive knowledge of the field. This collaborative environment not only facilitated my learning but also boosted my confidence as a developer. I gained insights into best practices for coding, debugging, and collaborating in a distributed team setting, all of which are crucial for a successful career in DevOps and open-source development.

Conclusion

My LFX mentorship with Jaeger has been a transformative experience. It allowed me to contribute meaningfully to a project that plays a vital role in the observability space while honing my technical skills and understanding of distributed tracing technologies. This experience has not only advanced my career aspirations in DevOps but also enriched my perspective on how open-source projects drive innovation.

For anyone interested in contributing to open-source projects through the LFX Mentorship program, I highly recommend starting with small contributions to build your confidence and familiarity with the community. This path can lead to incredible opportunities to learn, grow, and make a lasting impact in the tech world.

Thank you for reading about my journey. I look forward to continuing my contributions to the Jaeger project and the broader open-source community!

--

--