When I first heard about OpenTelemetry, I was intrigued but admittedly a little overwhelmed. Words like "observability," "telemetry data," and "distributed systems" flew over my head. As a recent graduate with a degree in Computer Engineering and a specialisation in Cloud Computing, the basics were clear to me, but I did not have in-depth knowledge and observability, and Open Source were not spaces I’ve really explored.
But now, just a few weeks into my Outreachy internship, I’m not only learning the ropes but also contributing to one of the most impactful tools in the observability space. For anyone new to OpenTelemetry or thinking about joining the community, here’s what it’s all about—and how my project fits in.
What Problem Is OpenTelemetry Solving?
Imagine an app you use daily, like an online shopping platform. When you click “Buy Now,” there’s a bulk of activity behind the scenes: inventory is checked, payment is processed, and shipping is initiated. This involves multiple services communicating with one another, often called microservices.
Now imagine something goes wrong. Maybe the payment service is slow, or the inventory service is down. How do developers find the issue? That’s where observability comes in. Observability helps developers understand what’s happening inside their systems through the three most known types of telemetry data:
Traces: Follow the journey of a single request (e.g., the "Buy Now" click).
Metrics: Quantify system performance (e.g., server response times).
Logs: Provide detailed insights into errors or failures.
OpenTelemetry standardized how this telemetry data is collected and exported, making it easier for developers to monitor, debug, and optimize their applications.
How My Project Fits In
OpenTelemetry is a large and vibrant community with repositories spanning multiple languages like JavaScript, Python, and Go. My project focuses on improving the contributing guide for OpenTelemetry repositories.
Why does this matter? Because OpenTelemetry thrives on community contributions. For newcomers, clear and accessible documentation is key to getting started. My task is to document the development setup process, address pain points for first-time contributors, and ensure they can seamlessly participate in improving OpenTelemetry through a comprehensive setup guide.
For example, I’ve been working on outlining how to set up a local development environment for the JavaScript SDK. This involves explaining how to use tools like npm (Node Package Manager) and yarn, as well as troubleshooting common setup errors and so much more.
What Makes OpenTelemetry Exciting?
What excites me most about OpenTelemetry is its universality. It’s not tied to a specific company or platform, which means it can be used to monitor anything from cloud services to on-premise applications. The thought that my work contributes to a tool that helps developers worldwide build more reliable applications is incredibly motivating.
Concepts I’ve Learned Along the Way
A few terms that were confusing to me at first (and might be to you too):
- SDK (Software Development Kit): It is a collection of tools that help developers create applications for a specific platform, operating system, or programming language. SDKs are also known as devkits.
For instance, in OpenTelemetry SDKs manage the process of gathering telemetry data from instrumented code within an application, including data aggregation and filtering based on configuration.
Instrumentation: Adding code to your application to collect telemetry data. For example, you might instrument a database query to measure how long it takes.
Exporter: A tool that sends telemetry data to an observability platform like Jaeger or Prometheus.
They became clearer as I read the documentation, tried things out, and (most importantly) asked questions in community Slack channels.
Overcoming Challenges as a Newcomer
I was initially hesitant to ask questions in community chats. Would they think my questions were too basic? But every time I reached out, I was met with kindness and support. My mentor, Marylia Gutierrez, has been invaluable, providing guidance and encouragement.
For anyone new to OpenTelemetry or open source in general, here’s my advice:
Start Small: Pick an issue labelled "good first issue" in the GitHub repository.
Ask Questions: No one expects you to know everything. The community is here to help.
Stay Curious: Explore the documentation and experiment. Hands-on learning is the best way to grow.
Why Join OpenTelemetry?
If you’re considering applying for Outreachy or contributing to OpenTelemetry, know this: you’ll be joining a community that’s shaping the future of observability. Whether you’re a seasoned developer or just starting out, there’s room for you to make an impact.
OpenTelemetry is not just about solving technical problems; it’s about empowering developers to build better, more reliable applications. And being part of that mission? It’s an experience like no other.
So take that leap—because the observability world is waiting for your contribution!