OpenTelemetry へのコントリビューションを考えていますか?私の経験をお伝えします。

Blog posts are not updated after publication. This post is more than a year old, so its content may be outdated, and some links may be invalid. Cross-verify any information before relying on it.

夕焼けのオレンジ色の空の下、水面に沈む太陽と、手前に広がる長い草。

あなたは OpenTelemetry(OTel)を使っていますか? OpenTelemetry に貢献したいと思ったことはあるけれど、どこから始めればいいかわからなかったことはありませんか? それなら、ちょうどいいところに来ましたね!

自分自身の経験をもとに、この活気があり開かれたオープンソースコミュニティに参加するために私が見つけた効果的な方法について、いくつかの知見を共有したいと思います。

オープンソースへの貢献は怖い!

正直に言いましょう。 私たちのほとんどは、日々の技術的な仕事でオープンソースプロジェクトを使っています(副業かもしれませんが)。 しかし、これらのオープンソースプロジェクトに「貢献(コントリビュート)する」となるとどうでしょうか? あなたはどうかわかりませんが、私にとっては、昨年まで、オープンソースに貢献するという見通しは、ただひたすら「怖い」ものでした!! プルリクエスト(PR)を開くと、自分をさらけ出すことになるわけです。 貢献先のリポジトリの承認者リストに並ぶ小さな GitHub アバターたちに評価されるのですから。 怖い!

しかし、PR を開くことが怖いと思う反面、自分の貢献がコードベースにマージされるのを見るのは、とても満足感があります。 そして何より、あなたの貢献が他の人の役に立つのです!! すばらしいと思いませんか?

OTel に貢献する方法

さあ、やる気が出てきましたか? すばらしい。 OTel に貢献するいくつかの方法を見ていきましょう。

OTel ドキュメントに貢献する

OTel を使い始めたばかりですか? オープンソースプロジェクトにコードを貢献することに少し不安を感じていますか? 大丈夫です! OpenTelemetry(あるいはどんなオープンソースプロジェクトでも)に貢献するもっとも簡単で効果的な方法の一つは、ドキュメントに貢献することです! 新しいということは不利ではないことを覚えておいてください。 むしろ、ドキュメントにとっては強みです。 OTel の世界にまだ深く入り込んでいないからこそ、新しい人は OTel のドキュメントを評価するのに最適な人物なのです!

新しい OTel のコンセプトを調べる必要があるとき、私はいつもまずドキュメントを参照します。 必要な情報がすべて書かれていることもあれば、そうでないこともあります。 そうでない場合、ドキュメント以外に情報を探す必要があり、外部のブログ記事を読んだり、技術に詳しい友人に聞いたりします。 知識のギャップを埋めることができたら、私は2つのことをします。

  1. ブログを書きます。 例として、OTel Python Logging Auto-Instrumentation with the OTel OperatorLet’s Learn About the OTel Operator’s Target Allocator! をご覧ください。
  2. OTel のドキュメントに貢献します。 例として、Include docs about Python logs auto-instrumentationAdd troubleshooting guidance to OTel Operator auto-instrumentation docsUpdate Python auto-instrumentation docs をご覧ください。

NOTE: ✨ 2番目は「特に」重要です。 なぜなら、OTel ドキュメントがすべての OTel 情報の信頼できる情報源(Source of Truth)TMであるためにもっともよい方法は、私たちのような人がギャップを見つけたときにドキュメントにコントリビューションすることだからです。

OTel ドキュメントへのコントリビューションについて、詳しくはこちらをご覧ください。

NOTE: ✨ OTel ドキュメントのコントリビューションガイドラインがわかりにくかったり、間違いがあったりする場合、それを改善するのもすばらしい貢献の方法です! 😉

OTel ブログに記事を書く

OTel に貢献するもう一つのすばらしい方法は、OpenTelemetry ブログにブログ記事を書くことです。 OpenTelemetry で何か面白いことをしたり、組織内で複雑な OTel の実装に取り組んだりしたことがあれば、OpenTelemetry ブログはそれをより広いコミュニティと共有するすばらしい方法です。 販売中の製品を宣伝するものでなく、読者が作業を再現するために購入する必要がないものであれば、あなたのブログ記事は大歓迎です!

私の過去のブログ記事の例をご覧いただけます。 HashiCorp Nomad で OpenTelemetry デモアプリを動かす

OTel ブログへの記事の投稿について、詳しくはこちらをご覧ください。

OTel エンドユーザーワーキンググループに参加する

OTel を使い始めたばかりで、他の OTel ユーザーとつながりたいですか? OTel コミュニティ全体と共有したいフィードバックがありますか? それとも、より上級の OTel ユーザーとして、自分のストーリーやユースケースをコミュニティと共有したいですか? それなら、OTel エンドユーザーワーキンググループ(EUWG)がぴったりかもしれません! このグループは、月に数回集まる OpenTelemetry ユーザーで構成されており、以下のことを行います。

ちなみに、私は共同議長の一人です。 ちょっと言ってみただけです… 😉

OTel EUWG について、詳しくはこちらをご覧ください。

OpenTelemetry デモにコントリビューションする

コードの貢献をしたいけれど、OTel のコアコードに貢献する準備がまだできていないなら、OTel デモをチェックしてみてください。 OTel デモには、複数の言語で書かれたサービスを含む分散型オンライン望遠鏡ショップアプリケーションが含まれており、OpenTelemetry で計装されています。 選んだ言語でコードを計装する方法を学ぶのにすばらしい方法です。

OTel デモのドキュメントによると、デモの目的は以下のとおりです。

  • OpenTelemetry の計装とオブザーバビリティを実演するために使用できる、分散システムの現実的な例を提供する。
  • ベンダー、ツール開発者、その他の人々が自身の OpenTelemetry インテグレーションを拡張・実演するための基盤を構築する。
  • OpenTelemetry のコントリビューターが API、SDK、その他のコンポーネントや機能強化の新しいバージョンをテストするために使用できる、生きた実例を作る。

OTel デモは1周年を迎えたばかりで、最初のリリースから大きく成長しました。 OTel が進化するにつれて、OTel デモもそれに合わせて進化し、OTel Collector や言語固有の計装の最新バージョンを活用する必要があります。 つまり、やるべきことは常にあるのです!

私のコントリビューションの例をご覧いただけます。 Integrate with existing metrics code

OTel デモへのコントリビューション方法について、詳しくはこちらをご覧ください。

Special Interest Group に参加する

もう少し冒険してみたいですか? それなら、OTel の他の Special Interest Group(SIG)に参加してみてはいかがでしょうか? SIG に参加すると、SDK 開発、ライブラリの自動計装、OTel CollectorOTel Operator などにコントリビューションできます(これらに限りません)。 定期的なコントリビューターである必要さえありません。 コントリビューションが必要性から生まれることもあります。 たとえば、Collector にバグを見つけたとしましょう。 修正に挑戦してみてはどうでしょうか? または、あなたとチームがどうしても必要な機能があるかもしれません。 それも、実装に挑戦してみてはどうでしょうか?

さて、コードを書き始める前に、以下のことを確認してください。

  1. 適切な GitHub リポジトリにイシューを立てる
  2. Slack でその機能が必要とされている/望まれているか確認する
  3. SIG のコールに参加して、あなたの具体的な関心やニーズを共有する

OTel へのコードの貢献が簡単だとは思っていません。 まったくそうではありません。 コードの貢献をすることになった場合、一人で行うストレスや学習曲線を軽減する一つの方法は、意欲的な OTel コミュニティメンバーとペアを組んでこうしたコード変更を実装することです。 OTel のコミュニティの人々は、とても親切で温かいと感じています。

私の貢献の例をご覧いただけます。 Specify gRPC endpoint in otlp receiver config

OTel SIG について、詳しくはこちらをご覧ください。

おわりに

ここまで見てきたように、OpenTelemetry に貢献する方法はたくさんあります。 ドキュメントへの貢献、ブログの執筆、エンドユーザーワーキンググループへの参加、OTel デモへの貢献、SIG への参加などです。

でも待ってください。まだあります! 「公式」の OpenTelemetry チャネル(つまり GitHub と Slack)以外でも、OpenTelemetry に貢献できます。 OpenTelemetry について講演したり、ポッドキャストに出て OpenTelemetry を広めたり、友人や家族に OpenTelemetry のことを話したり…他にもたくさん! どんなことでも力になります!

小さな貢献なんてありません。 なぜなら、一つ一つの積み重ねが、OpenTelemetry をすばらしいものにする助けになるからです。

最後に、私は常に OTel についての発見や気づきをブログに書くことをお勧めしています。 もちろん、私もそうしています。 しかし、これらの知見を OTel のドキュメントやブログに直接貢献することで共有してください。 そうすることで、信頼できる唯一の情報源を維持でき、OTel の初心者でも上級者でも、すべての人が恩恵を受けられるようになります。