Thinking about contributing to OpenTelemetry? Here's how I did it.
Are you an OpenTelemetry (OTel) practitioner? Have you ever wanted to contribute back to OpenTelemetry, but didn’t know where to begin? Well, my friend, you’ve come to the right place!
Drawing from my own personal journey, I’d like to offer some valuable insights into effective ways I’ve discovered for initiating involvement in this thriving and inclusive open source community.
Contributing to open source can be SCARY!
Let’s face it. Most of us use open source projects in our day-to-day tech jobs (Or maybe side hustles?). But what about contributing to these open source projects? I don’t know about you, but for me, up until last year, the prospect of contributing to open source was just plain scary!! I mean, when you open up a pull request (PR), you are putting yourself out there, to be judged by those little GitHub avatars that make up the approvers list for the repository you’re contributing to. YIKES!
But as scary as the thought of opening a PR might be, it’s also SO VERY SATISFYING to see your contributions merged into a codebase. And most importantly, your contributions can help others!! How cool is that?
Ways to contribute to OTel
Okay. Are you feeling pumped now? Awesome. Let’s look at some of the ways to contribute to OTel.
Contribute to the OTel Docs
Are you new to OTel? Are you a bit apprehensive about contributing code to an open source project? No sweat! One of the best and easiest ways to contribute to OpenTelemetry (or to any open source project, for that matter) is to contribute to the docs! Remember that being new is not a disadvantage. In fact, it’s an asset for the docs: by not being too deep into the OTel world, a newcomer is the perfect person assess OTel documentation!
Whenever I need to dig into a new OTel concept, I always turn to the docs for guidance. Sometimes they have all of the info that I need, and sometimes they don’t. This usually means that I have to do a bit more digging beyond the docs, by seeking out external blog posts, bugging techie friends, etc. Once I’m able to fill that knowledge gap, I do two things:
- I blog about it. See examples here, here, and here.
- I contribute to the OTel docs. See examples here, here, and here.
✨ NOTE: ✨ Number two is especially important, because the best way for the OTel docs to be the Source of Truth for All Things OTelTM is to have folks like us contributing to the docs whenever we see a gap.
Learn more about contributing to the OTel docs here.
✨ NOTE: ✨ If you find the contribution guidelines for the OTel Docs to be confusing or have a mistake, improving them is a great way to contribute! 😉
Write a post on the OTel Blog
Another great way to contribute to OTel is to write blog posts on the OpenTelemetry blog. If you’ve done something interesting in OpenTelemetry, or have worked on a complex OTel implementation within your organization, the OpenTelemetry blog is a great way to share that with the community at large. As long as your work isn’t promoting a product you’re selling or requires readers to make a purchase in order to replicate your work, your blog post is most welcome!
You can check out an example of one of my previous blog posts here.
Learn more about submitting a post to the OTel blog here.
Join the OTel End User Working Group
Are you just getting started with OTel and want to connect with other OTel practitioners? Do you have feedback that you wish to share with the greater OTel community? Or perhaps you’re a more advanced OTel practitioner and want to share your story and/or use cases with the greater community? Then the OTel End User Working Group (EUWG) might be just the place for you! This group is made up of OpenTelemetry practitioners who come together a few times a month to:
- Share their feedback and ask questions through OTel End User Discussions
- Share their stories of OpenTelemetry adoption through OTel Q&A
- Share their knowledge on specific areas of OpenTelemetry through OTel in Practice (OTiP)
As an added bonus, I’m one of the co-chairs. Just sayin’… 😉
Learn more about the OTel EUWG here.
Contribute to the OpenTelemetry Demo
If you’d like to contribute code, but aren’t quite ready to contribute to core OTel code, then perhaps you might want to check out the OTel Demo. The OTel Demo includes a distributed online telescope shop application with services written in multiple languages and is instrumented with OpenTelemetry. It’s a great way to learn about how to instrument code in your chosen language.
Per the OTel Demo docs, the purpose of the demo is to:
- Provide a realistic example of a distributed system that can be used to demonstrate OpenTelemetry instrumentation and Observability.
- Build a base for vendors, tooling authors, and others to extend and demonstrate their OpenTelemetry integrations.
- Create a living example for OpenTelemetry contributors to use for testing new versions of the API, SDK, and other components or enhancements.
The OTel Demo just celebrated its first birthday, and it’s come a long way since its first release. As OTel evolves, the OTel Demo must also evolve alongside it, to ensure that it is utilizing the latest and greatest versions of things like the OTel Collector and language-specific instrumentation. In short, there’s always work to be done!
You can check out an example of one of my contributions here.
Learn more about how to contribute to the OTel Demo here.
Join a Special Interest Group
Feeling a little more adventurous? Then why not join one of the other OTel special interest groups (SIGs)? By joining a SIG, you can contribute to things like (but not limited to) SDK development, auto-instrumentation of libraries, the OTel Collector, and the OTel Operator. You don’t even need to be a regular contributor. Sometimes, contributions come out of necessity. Like maybe you found a bug in the Collector. Why not take a stab at fixing it? Or maybe there’s a feature that you and your team desperately need. Again, why not take a stab at implementing it?
Now, before you go off writing code, you should make sure that you:
- Raise an issue in the appropriate GitHub repository
- Check with folks on Slack to see if this feature is needed/wanted
- Pop into one of the SIG calls and share your specific interests and needs
I’m under no illusion that any contributing code to OTel is is a trivial task. Far from it. If you do end up contributing code, one way to alleviate the stress/learning curve of doing it solo would be to pair with a willing OTel community member to implement these types of code changes. I’ve found folks within OTel to be nothing but helpful and welcoming.
You can check out an example of one of my contributions here.
Learn more about the OTel SIGs here.
As we’ve seen, there are many ways to contribute to OpenTelemetry, whether it’s through docs contributions, blogging, joining the End User Working Group, contributing to the OTel Demo, or joining a SIG.
But wait…there’s more! You can also contribute to OpenTelemetry outside of the “official” OpenTelemetry channels (i.e. GitHub and Slack). These include giving talks about OpenTelemetry, going on podcasts to promote OpenTelemetry, telling your friends and family about OpenTelemetry…and so much more! Anything helps!
There’s no such thing as a small contribution, because every little bit adds up, and helps make OpenTelemetry awesome.
As a final thought, I will always encourage folks to blog about the OTel findings and discoveries. Obviously, I do that too. But please also share these findings by contributing directly to the OTel docs and blog, to ensure that we have a single source of truth, and so that everyone, whether they’re new to OTel or advanced practitioners, can benefit.