ベンダーニュートラルな可視化ツールOpenTelemetryの最新情報を紹介
OpenTelemetryは、アプリケーション及びインフラストラクチャーのプロセスに対するトレーシングとメトリクス収集&加工のためのオープンソースソフトウェアだ。OpenCensusとOpenTracingという2つのソフトウェアがマージされて誕生したという経緯を持つ。
2019年に上海で開催されたKubeCon Chinaにおいて、OpenCensusのコントリビュータであるSteve Flanders氏にインタビューした記事でもOpenTelemetryの紹介をしているが、今回は2020年12月にCNCFが公開した動画からOpenTelemetryの概要を紹介し、同時にKubeCon NA 2020のセッションのスライドを使って解説する。またユースケースとして、KubeCon EU 2020のIntuitのセッションも紹介したい。
OpenTelemetryとは
Steve Flanders氏にインタビューした記事:KubeCon Chinaで訊いたOpenTelemetryのマージ裏話
まずOpenTelemetryそのものについて、Steve Flanders氏による10分弱の動画を紹介する。
OpenTelemetryの概略:Lightning Talk: Controlling Your Data with the OpenTelemetry Collector
2019年の段階ではOmnitionというベンチャーに所属していたFlanders氏だが、その後OmnitionがSplunkに買収された結果、今はDirector of Engineeringというタイトルで、Splunkの開発チームのトップというポジションに就いている。
最初のスライドはOpenTelemetryとは何か? より正確には「OpenTelemetry Collectorとは何か?」を解説するものだ。ここではベンダーニュートラルであること、単一のバイナリーモジュールであること、データを収集する役割を果たすものと解説されているが、そもそも「OpenTelemetryはSDKとAPIそしてツールの総称であり、バックエンドを担うものではない」ということは、ドキュメントサイトにも明記されている。
OpenTelemetryのドキュメントサイト:What is OpenTelemetry?
ここで「バックエンドではない」というのは重要なコンセプトで、メトリクスやトレーシングはエージェントが収集するが、その後の可視化などはJaegerやZipkin、Prometheusなどが担当するべきという発想だ。また1つのバイナリーでエージェントとしてもゲートウェイとしても動作するという使い勝手の良さも、訴求ポイントの1つに挙げられている。
OpenTelemetryの実装
この図ではエージェントとゲートウェイとして動作するOpenTelemetry Collectorが提示されているが、KubeCon NAのキーノートセッションでは、より詳細な実装モデルが解説されている。
このスライドはConstance Caramanolis氏のキーノートセッションから取ったものだが、エージェント、サイドカー、デーモンセット、ゲートウェイの形でOpenTelemetry Collectorが実装できることを紹介している。
Constance Caramanolis氏のセッション:Keynote: Using the OpenTelemetry Collector to Empower End Users - Constance Caramanolis, KubeCon + CloudNativeCon North America 2020 Co-Chair & Principal Engineer, Splunk
ここではさまざまなソースから受信したテレメトリーデータをパイプラインの処理を経て、バックエンドのプロセスに送信することが解説されている。パイプラインの中では、さまざまな処理が可能であると解説している。次のスライドからその利用例が紹介されているが、最初に挙げられているのは、PII Redaction(個人識別情報の編集、Personally Identifiable Information)だ。
これはETLツールなどの利用例としても挙げられている方法で、データから不要な個人識別情報を削除するというものだ。ECサイトのアクセスログ加工の前処理などに利用されているSSN(Social Security Number)の削除、メールアドレスの暗号化などが、この動画の最後のデモでも解説されている。
この例ではデータベースのクエリーの結果から個人識別情報をハッシュ化、アマゾンで販売したデータの削除などが挙げられているが、例として使われているのがペットクリニックのサイトならではというところだろう。他の例としてメタデータの追加やデータ整形などETLツールの機能がそのまま持ち込まれていることからもログだけに頼らずテレメトリーからもシステムの可視化を目指していることが理解できる。
この例ではパイプラインとしてさまざまなプロセスが順に実行されることが示されている。レシーバー、エクスポーターとしてJaegerやPrometheus、Zipkinなどが指定されていることから、既存のソフトウェアが実装するプロトコルのサポートが行われていることがわかる。Caramanolis氏のセッションでも複数のプロトコルのサポートが謳われているのは、既存のシステムとの連携を重視している証拠だろう。
最後にデモとしてソースコードを変更せずにログとして出力されるデータからSSNの削除、メールアドレスのハッシュ化をYAMLファイルの設定によって行っているようすを見せた。
ここではSSNとメールアドレスがそのままJSON形式でログに保存されているものを、Collectorの設定ファイルにSSNの削除とメールアドレスのハッシュ化することを追加している。
実際にYAMLファイルを適用した後のデータは、上記の指定どおりに結果が変わっていることを確認できる。
Intuitのユースケース
最後に、スモールビジネス向けの会計ソフトをSaaSとして提供するIntuitのユースケースを紹介しよう。これは2020年のKubeCon EUで行われたセッションだ。
IntuitのOpenTelemetryの事例:Observability at Scale: Running OpenTelemetry Across an Enterprise - Jonah Back & Kranti Vikram
ここでのポイントは、オンプレミスとAWSに配備されたKubernetesクラスターの可視化を行うために、すでにロギングやAPM(Application Performance Monitoring)が利用されていたが、それだけでは不足であったこと、ベンダー固有のソリューションでは必要とされるメトリクスが利用できなかったことが背景として解説されている。ここではNew RelicやAppDynamicsという商用サービスだけでは、全体をカバーするメトリクスが取れていなかったというのがポイントだろう。
またこのスライドでは障害発生から復旧までをステップとして考えていることがわかる。システムのダウンタイムを「Outage Budget(許容できる停止時間)」として評価しているのは、Googleが始めたSRE(Site Reliability Engineering)で導入されたエラーバジェットの発想からのものだろう。
これを見ると、Intuitは毎月22分を許容されるダウンタイムとして数値化していることがわかる。その目標に到達するために、「エラーの発生から復旧までどのチームが何をするべきか?」を考えていることがわかる。
最終的Intuitは、OpenTelemetryを活用してオンプレミスからパブリッククラウドまでの可視化を行っていることを紹介した。
1ここでもOpenTelemetryはデータ収集のためのエージェントとして実装されており、最終的なUIにはJaegerが用いられていることがわかる。
OpenTelemetryはOpenTracingとOpenCensusがマージしたプロジェクトとしてスタートし、現状ではまだベータ版という状態だが、これから多くのユースケースが出てくることが期待されている。これからも可視化を支える黒子として、立ち位置は地味だが活躍していくだろう。引き続き注目したい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Observability Conference 2022、Splunkのエンジニアが説明するOpenTelemetryの入門編
- Obervability Conference 2022、OpenTelemetryの概要をGoogleのアドボケイトが解説
- Oracle Cloud Hangout Cafe Season4 #4「Observability 再入門」(2021年9月8日開催)
- KubeCon Europeに参加した日本人エンジニアとの座談会で見えてきたKubernetesの次の方向性とは
- Kubernetesアプリケーションのトレーシング
- KubeCon Europe開幕、初日のキーノートではLinkerd、OpenTelemetryに注目
- KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション
- CNDT2021、CNCFの元TOCメンバーがOSSにおける標準の重要性を解説
- Observability Conference 2022開催、Kubernetesにおける観測の基本を解説
- CNDT2020シリーズ:CAのインフラエンジニアが解説するKubernetesネイティブなCI/CD