Obervability Conference 2022、OpenTelemetryの概要をGoogleのアドボケイトが解説
Observability Conference 2022から、Googleのデベロッパーアドボケイトである山口 能迪氏がOpenTelemetryの歴史、概要、現状を解説する「OpenTelemetryのこれまでとこれから」と題されたセッションを紹介する。
山口氏はOpenTelemetryやGo言語のコミュニティ活動を行っているエンジニアであるとともに、GoogleではオブザーバビリティやSRE(Site Reliability Engineering)を担当領域としてデベロッパー向け支援を行っている。40分の講演時間のうち、約半分の時間を使ってオブザーバビリティの基本、OpenTelemetryの生い立ちなどを解説した。
システムの動きを観測するためには、そのシステムの動きをデータとして取り込むための計装(インスツルメンテーション)とデータの送信(エクスポート)が必要と解説。そもそもテレメトリーとは遠隔測定法と日本語では解説されている通り、ある機械、装置に対して遠隔からデータを獲得することであり、人工衛星から原子力発電、はてはフォーミュラ1まで多くの産業、業界で使われている技術であり、コンピュータシステムにおいてもその歴史は古い。
そしてテレメトリーにおける要点としてインスツルメンテーション、エクスポートがテーマであるとして、主に3つの形態で実施されていることを紹介した。その3つとしてログ、メトリクス、分散トレーシングが挙げられており、これは現在のIT業界では定説と言えるだろう。
クラウドコンピューティングにおけるオブザーバビリティとしては、Googleが社内で利用するコンテナオーケストレーションツールでありKubernetesのベースとなったBORG、gRPCの元となったStubby、そしてBORGMONを紹介した。そしてその関連として分散トレースのためのDapper、Twitterが開発したZipkin、Uberが開発したJeager、BORGMONを参考にしてSoundCloudが開発したPrometheusなどについても紹介を行った。OpenCensusについては、Dapperのためのライブラリーをオープンソースにしたものだと説明した。この辺りはGoogle社内のエンジニアならでは情報と言えるだろう。
今回の焦点であるOpenTelemetryについて、アプリケーションからデータを取り込むためのライブラリーであるOTel Library、データを収集するOTel Collectorが対象となると説明。ここではバックエンドを受け持つ監視ツールは含まないと解説した。
またOpenTelemetryそのものについて「ログ、トレース、メトリクスの計装と送信の標準仕様、及びライブラリー群とエージェントを提供するプロジェクト」と定義している。
コンポーネントを説明したスライドでは標準仕様を定めるという部分が読み取れないため、ここではオープンソースプロジェクトとして標準を定める役割を担っていることを強調した形となった。
ここでOpenTelemetryの前身であるOpenMetricsとOpenCensusについても言及した。それぞれ個別のプロジェクトだったものが、コミュニティのリーダーたちの合議によってマージされることになったと語った。
2つのプロジェクトがマージされ、2019年に登場したOpenTelemetryだが、プロジェクトとしてはAPI、プログラミング言語から利用するためのSDK、そしてデータを送信するためのフォーマットであるOTLP(OpenTelemetry Protocol)に分けられている。ログ、メトリクス、トレーシングについての進捗を解説したのが次のスライドだ。
ここではトレーシング、メトリクス、そしてログについての現状が解説されている。また各プログラミング言語の対応などについても解説を行った。トレーシングと分散メトリクスについては元のプロジェクトであるOpenTracingとOpenCensusから引き継いでいるが、ログに関しては2021年1月にベンチャー企業であるObservIQからログ収集のエージェントであるStanzaの寄贈を受けたばかりであるためか、進捗が遅いことが分かる。StanzaはFluentdやFluent Bitの代替として開発されたログ収集エージェントであると公式GitHubには記載されており、今後の進捗に期待したい。
Stanza公式GitHub:https://github.com/observIQ/stanza
ここからはOpenTelemetryの内部の仕組みについて解説を行った。
またトレーシングの基本となるSpanやExporterなどについて図を用いて解説。ここでは分散されたサービスがバックエンドにデータを送信する概要が説明された。
メトリクスについてもExporterやMeterProviderなどのコンポーネントについて概要を説明。
特にメトリクスのタイプであるCount(カウント)とGuage(ゲージ)の具体的な違いについて解説した。一定時間内でのデータの件数をカウントする場合と、データの値の変化に注目する場合などについて説明を行った(GuageはGaugeのタイポと思われるが、スライドの記述のままとした)。
最後のログについては、ログだけに注目するのではなくトレーシングと連携した形でログを利用することが必要だとして、時間などのデータに加えてトレーシングのIDを含む形のログデータが検討されていることを紹介。オブザーバビリティの基本であるログとトレーシング、メトリクスが連携することの必要性を説明した。
またGoogleが企画しているオンラインカンファレンスでより詳細なOpenTelemetryの情報が公開されるとして、カンファレンスへの参加を促した。OpenTelemetryに特化したGoogle OpenSource Liveについては以下を参照されたい。
OpenTelemetry Day on Google Open Source Live
OpenTelemetryの生い立ちや他のオープンソースソフトウェアとの関係など、Google社内の情報にアクセスできるエンジニアならではの情報が含まれたセッションとなった。Googleのオンラインカンファレンスで、より詳細な開発方法などを学ぶためのイントロダクションと言ったところだろう。過去のKubeCon等で発表されたOpenTelemetry関連のセッションについては以下の記事を参照されたい。
OpenTelemetry関連記事:ベンダーニュートラルな可視化ツールOpenTelemetryの最新情報を紹介
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Observability Conference 2022、Splunkのエンジニアが説明するOpenTelemetryの入門編
- Oracle Cloud Hangout Cafe Season4 #4「Observability 再入門」(2021年9月8日開催)
- テレメトリーシグナルの相関に基づくデバッグにより、オブザーバビリティの真価を発揮
- ベンダーニュートラルな可視化ツールOpenTelemetryの最新情報を紹介
- Observability Conference 2022開催、Kubernetesにおける観測の基本を解説
- Kubernetesアプリケーションのトレーシング
- Promscaleのデモから見えるタイムシリーズデータを使った現代的なオブザーバビリティ
- Observability Conference 2022、日本ユニシスのエンジニアが解説するデベロッパーにとってのオブザーバビリティ
- Observability Conference 2022から、サイボウズのオブザーバービリティ事例を紹介
- 3/11「Observability Conference 2022」開催せまる! 実行委員オススメのみどころを紹介