diff --git a/content/en/blog/2023/contributing-to-otel/index.md b/content/en/blog/2023/contributing-to-otel/index.md new file mode 100644 index 000000000000..81e04905b1cf --- /dev/null +++ b/content/en/blog/2023/contributing-to-otel/index.md @@ -0,0 +1,196 @@ +--- +title: Thinking about contributing to OpenTelemetry? Here's how I did it. +linkTitle: Contributing to OTel +date: 2023-09-18 +author: + >- # If you have only one author, then add the single name on this line in quotes. + [Adriana Villela](https://github.com/avillela) (Lightstep), +canonical_url: https://medium.com/cloud-native-daily/how-to-contribute-to-opentelemetry-5962e8b2447e +cSpell:ignore: EUWG, nolan, riaan, sayin, servian +--- + +![Sunset over the water over an orange sky, with long grass in the foreground.](turks-sunset.jpg) + +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](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) +(PR), +_[you are putting yourself out there](https://oncallmemaybe.com/episodes/adventures-in-open-source-software-with-riaan-nolan-of-servian)_, +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: + +1. I blog about it. See examples [here](https://shorturl.at/vLYZ0), + [here](https://shorturl.at/hlqtE), and [here](https://shorturl.at/czHST). +2. I contribute to the OTel docs. See examples + [here](https://github.com/open-telemetry/opentelemetry.io/pull/3195), + [here](https://github.com/open-telemetry/opentelemetry.io/pull/3098), and + [here](https://github.com/open-telemetry/opentelemetry.io/pull/2130). + +> ✨ **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](https://github.com/open-telemetry/opentelemetry.io/blob/main/CONTRIBUTING.md). + +> ✨ **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](/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](/blog/2022/otel-demo-app-nomad/). + +Learn more about submitting a post to the OTel blog +[here](https://github.com/open-telemetry/opentelemetry.io#submitting-a-blog-post). + +### 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](/community/end-user/discussion-group/) +- Share their stories of OpenTelemetry adoption through + [OTel Q&A](/community/end-user/interviews-feedback/) +- Share their knowledge on specific areas of OpenTelemetry through + [OTel in Practice (OTiP)](/community/end-user/otel-in-practice/) + +As an added bonus, I'm one of the co-chairs. Just sayin'… 😉 + +Learn more about the OTel EUWG [here](/community/end-user/). + +### 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](/docs/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](https://github.com/open-telemetry/opentelemetry-demo#welcome-to-the-opentelemetry-astronomy-shop-demo), +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](/blog/2023/demo-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](/docs/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](https://github.com/open-telemetry/opentelemetry-demo/pull/432). + +Learn more about how to contribute to the OTel Demo +[here](https://github.com/open-telemetry/opentelemetry-demo/blob/main/CONTRIBUTING.md). + +### Join a Special Interest Group + +Feeling a little more adventurous? Then why not join one of the other OTel +[special interest groups](https://en.wikipedia.org/wiki/Special_interest_group) +(SIGs)? By joining a SIG, you can contribute to things like (but not limited to) +SDK development, auto-instrumentation of libraries, the +[OTel Collector](/docs/collector/), and the +[OTel Operator](/docs/kubernetes/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: + +1. Raise an issue in the + [appropriate GitHub repository](https://github.com/open-telemetry) +2. Check with folks on + [Slack](https://communityinviter.com/apps/cloud-native/cncf) to see if this + feature is needed/wanted +3. Pop into one of the [SIG calls](https://shorturl.at/beJ09) 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](https://github.com/open-telemetry/opentelemetry-helm-charts/pull/531). + +Learn more about the OTel SIGs [here](/community/#special-interest-groups). + +### Final thoughts + +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. diff --git a/content/en/blog/2023/contributing-to-otel/turks-sunset.jpg b/content/en/blog/2023/contributing-to-otel/turks-sunset.jpg new file mode 100644 index 000000000000..86e8f7d29801 Binary files /dev/null and b/content/en/blog/2023/contributing-to-otel/turks-sunset.jpg differ diff --git a/static/refcache.json b/static/refcache.json index 1b9f340b8cf9..6b1184c2acd0 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -843,6 +843,10 @@ "StatusCode": 206, "LastSeen": "2023-07-21T16:51:51.751459+02:00" }, + "https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests": { + "StatusCode": 206, + "LastSeen": "2023-09-08T10:57:00.851277-04:00" + }, "https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request": { "StatusCode": 206, "LastSeen": "2023-06-29T15:46:50.059623-04:00" @@ -1527,6 +1531,10 @@ "StatusCode": 200, "LastSeen": "2023-06-29T16:05:15.796393-04:00" }, + "https://en.wikipedia.org/wiki/Special_interest_group": { + "StatusCode": 200, + "LastSeen": "2023-09-08T10:57:02.340092-04:00" + }, "https://en.wikipedia.org/wiki/Subnormal_number": { "StatusCode": 200, "LastSeen": "2023-06-29T16:09:12.492806-04:00" @@ -2451,6 +2459,10 @@ "StatusCode": 200, "LastSeen": "2023-06-30T09:30:40.580337-04:00" }, + "https://github.com/open-telemetry/opentelemetry-demo#welcome-to-the-opentelemetry-astronomy-shop-demo": { + "StatusCode": 200, + "LastSeen": "2023-09-08T10:57:02.070547-04:00" + }, "https://github.com/open-telemetry/opentelemetry-demo-webstore#local-quickstart": { "StatusCode": 200, "LastSeen": "2023-06-30T09:23:00.788095-04:00" @@ -2491,6 +2503,10 @@ "StatusCode": 200, "LastSeen": "2023-07-18T14:38:00.524443+02:00" }, + "https://github.com/open-telemetry/opentelemetry-demo/pull/432": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:14:54.891852-04:00" + }, "https://github.com/open-telemetry/opentelemetry-demo/pull/877": { "StatusCode": 200, "LastSeen": "2023-07-18T14:38:01.810575+02:00" @@ -2687,6 +2703,10 @@ "StatusCode": 200, "LastSeen": "2023-06-30T08:44:18.695574-04:00" }, + "https://github.com/open-telemetry/opentelemetry-helm-charts/pull/531": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:08.111198-04:00" + }, "https://github.com/open-telemetry/opentelemetry-helm-charts/pull/760": { "StatusCode": 200, "LastSeen": "2023-06-01T15:55:25.600351-04:00" @@ -3131,10 +3151,26 @@ "StatusCode": 200, "LastSeen": "2023-06-30T08:49:14.039654-04:00" }, + "https://github.com/open-telemetry/opentelemetry.io#submitting-a-blog-post": { + "StatusCode": 200, + "LastSeen": "2023-09-08T10:57:01.381266-04:00" + }, "https://github.com/open-telemetry/opentelemetry.io/issues/new": { "StatusCode": 200, "LastSeen": "2023-06-30T08:31:06.342368-04:00" }, + "https://github.com/open-telemetry/opentelemetry.io/pull/2130": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:07.17132-04:00" + }, + "https://github.com/open-telemetry/opentelemetry.io/pull/3098": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:05.910172-04:00" + }, + "https://github.com/open-telemetry/opentelemetry.io/pull/3195": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:04.702626-04:00" + }, "https://github.com/open-telemetry/oteps/issues/197": { "StatusCode": 200, "LastSeen": "2023-06-30T09:34:03.795138-04:00" @@ -3879,6 +3915,22 @@ "StatusCode": 206, "LastSeen": "2023-06-29T16:19:11.338797-04:00" }, + "https://medium.com/@adri-v/lets-learn-about-the-otel-operator-s-target-allocator-47a2b1f07562": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:02.842574-04:00" + }, + "https://medium.com/@adri-v/running-the-opentelemetry-demo-app-on-hashicorp-nomad-a3e21e35369d": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:02.21315-04:00" + }, + "https://medium.com/cloud-native-daily/how-to-contribute-to-opentelemetry-5962e8b2447e": { + "StatusCode": 200, + "LastSeen": "2023-09-08T10:56:59.495178-04:00" + }, + "https://medium.com/cloud-native-daily/lets-learn-about-otel-python-logging-auto-instrumentation-with-the-otel-operator-663247666570": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:57:01.212859-04:00" + }, "https://medium.com/jaegertracing/introducing-native-support-for-opentelemetry-in-jaeger-eb661be8183c": { "StatusCode": 200, "LastSeen": "2023-06-29T16:14:37.278284-04:00" @@ -4143,6 +4195,10 @@ "StatusCode": 200, "LastSeen": "2023-06-29T18:36:24.487952-04:00" }, + "https://opentelemetry.io/": { + "StatusCode": 206, + "LastSeen": "2023-09-08T10:56:59.732967-04:00" + }, "https://opentracing.io": { "StatusCode": 206, "LastSeen": "2023-06-29T18:41:30.83242-04:00" @@ -4583,6 +4639,10 @@ "StatusCode": 200, "LastSeen": "2023-06-29T18:48:45.046029-04:00" }, + "https://shorturl.at/beJ09": { + "StatusCode": 200, + "LastSeen": "2023-09-12T11:14:56.238346-04:00" + }, "https://shorturl.at/bqtxO": { "StatusCode": 200, "LastSeen": "2023-06-01T17:06:18.570048-04:00" @@ -4591,6 +4651,18 @@ "StatusCode": 200, "LastSeen": "2023-07-24T11:52:43.111795+02:00" }, + "https://shorturl.at/czHST": { + "StatusCode": 200, + "LastSeen": "2023-09-12T12:09:44.772877-04:00" + }, + "https://shorturl.at/hlqtE": { + "StatusCode": 200, + "LastSeen": "2023-09-12T12:09:44.031281-04:00" + }, + "https://shorturl.at/vLYZ0": { + "StatusCode": 200, + "LastSeen": "2023-09-12T12:09:42.592065-04:00" + }, "https://signoz.io": { "StatusCode": 206, "LastSeen": "2023-06-29T18:37:18.085895-04:00"