ベンダーニュートラルな可視化ツールOpenTelemetryの最新情報を紹介

2021年3月29日(月)
松下 康之 - Yasuyuki Matsushita
可視化のためのプロジェクトOpenTelemetryの最新情報を、KubeConのセッションなどから解説する。

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

10分でわかるOpenTelemetry

10分でわかるOpenTelemetry

2019年の段階ではOmnitionというベンチャーに所属していたFlanders氏だが、その後OmnitionがSplunkに買収された結果、今はDirector of Engineeringというタイトルで、Splunkの開発チームのトップというポジションに就いている。

解説をするSteve Flanders氏

解説をするSteve Flanders氏

最初のスライドはOpenTelemetryとは何か? より正確には「OpenTelemetry Collectorとは何か?」を解説するものだ。ここではベンダーニュートラルであること、単一のバイナリーモジュールであること、データを収集する役割を果たすものと解説されているが、そもそも「OpenTelemetryはSDKとAPIそしてツールの総称であり、バックエンドを担うものではない」ということは、ドキュメントサイトにも明記されている。

OpenTelemetry Collectorとは何か?

OpenTelemetry Collectorとは何か?

OpenTelemetryのドキュメントサイト:What is OpenTelemetry?

ここで「バックエンドではない」というのは重要なコンセプトで、メトリクスやトレーシングはエージェントが収集するが、その後の可視化などはJaegerやZipkin、Prometheusなどが担当するべきという発想だ。また1つのバイナリーでエージェントとしてもゲートウェイとしても動作するという使い勝手の良さも、訴求ポイントの1つに挙げられている。

OpenTelemetryのアーキテクチャー図

OpenTelemetryのアーキテクチャー図

OpenTelemetryの実装

この図ではエージェントとゲートウェイとして動作するOpenTelemetry Collectorが提示されているが、KubeCon NAのキーノートセッションでは、より詳細な実装モデルが解説されている。

OpenTelemetryの実装モデル

OpenTelemetryの実装モデル

このスライドは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)だ。

OpenTelemetryが行うデータ処理の例

OpenTelemetryが行うデータ処理の例

これはETLツールなどの利用例としても挙げられている方法で、データから不要な個人識別情報を削除するというものだ。ECサイトのアクセスログ加工の前処理などに利用されているSSN(Social Security Number)の削除、メールアドレスの暗号化などが、この動画の最後のデモでも解説されている。

PII編集の例

PII編集の例

この例ではデータベースのクエリーの結果から個人識別情報をハッシュ化、アマゾンで販売したデータの削除などが挙げられているが、例として使われているのがペットクリニックのサイトならではというところだろう。他の例としてメタデータの追加やデータ整形などETLツールの機能がそのまま持ち込まれていることからもログだけに頼らずテレメトリーからもシステムの可視化を目指していることが理解できる。

パイプライン処理の概要

パイプライン処理の概要

この例ではパイプラインとしてさまざまなプロセスが順に実行されることが示されている。レシーバー、エクスポーターとしてJaegerやPrometheus、Zipkinなどが指定されていることから、既存のソフトウェアが実装するプロトコルのサポートが行われていることがわかる。Caramanolis氏のセッションでも複数のプロトコルのサポートが謳われているのは、既存のシステムとの連携を重視している証拠だろう。

複数のプロトコルサポートを強調

複数のプロトコルサポートを強調

最後にデモとしてソースコードを変更せずにログとして出力されるデータからSSNの削除、メールアドレスのハッシュ化をYAMLファイルの設定によって行っているようすを見せた。

デモの画面。ルール実行前はSSNとメールアドレスが確認できる

デモの画面。ルール実行前はSSNとメールアドレスが確認できる

ここではSSNとメールアドレスがそのままJSON形式でログに保存されているものを、Collectorの設定ファイルにSSNの削除とメールアドレスのハッシュ化することを追加している。

YAMLファイルにSSNの削除とメールアドレスのハッシュ化を指定

YAMLファイルにSSNの削除とメールアドレスのハッシュ化を指定

実際にYAMLファイルを適用した後のデータは、上記の指定どおりに結果が変わっていることを確認できる。

ルール適用後。SSNがなくなりメールアドレスがハッシュ化されている

ルール適用後。SSNがなくなりメールアドレスがハッシュ化されている

Intuitのユースケース

最後に、スモールビジネス向けの会計ソフトをSaaSとして提供するIntuitのユースケースを紹介しよう。これは2020年のKubeCon EUで行われたセッションだ。

KubeCon EU 2020で語られたOpenTelemetry活用のセッション

KubeCon EU 2020で語られたOpenTelemetry活用のセッション

IntuitのOpenTelemetryの事例:Observability at Scale: Running OpenTelemetry Across an Enterprise - Jonah Back & Kranti Vikram

ここでのポイントは、オンプレミスとAWSに配備されたKubernetesクラスターの可視化を行うために、すでにロギングやAPM(Application Performance Monitoring)が利用されていたが、それだけでは不足であったこと、ベンダー固有のソリューションでは必要とされるメトリクスが利用できなかったことが背景として解説されている。ここではNew RelicやAppDynamicsという商用サービスだけでは、全体をカバーするメトリクスが取れていなかったというのがポイントだろう。

OpenTracingを活用した背景

OpenTracingを活用した背景

またこのスライドでは障害発生から復旧までをステップとして考えていることがわかる。システムのダウンタイムを「Outage Budget(許容できる停止時間)」として評価しているのは、Googleが始めたSRE(Site Reliability Engineering)で導入されたエラーバジェットの発想からのものだろう。

システムが障害を起こしてから復旧するまでを可視化

システムが障害を起こしてから復旧するまでを可視化

これを見ると、Intuitは毎月22分を許容されるダウンタイムとして数値化していることがわかる。その目標に到達するために、「エラーの発生から復旧までどのチームが何をするべきか?」を考えていることがわかる。

最終的Intuitは、OpenTelemetryを活用してオンプレミスからパブリッククラウドまでの可視化を行っていることを紹介した。

IntuitのOpenTelemetryのアーキテクチャー図

IntuitのOpenTelemetryのアーキテクチャー図

1ここでもOpenTelemetryはデータ収集のためのエージェントとして実装されており、最終的なUIにはJaegerが用いられていることがわかる。

OpenTelemetryはOpenTracingとOpenCensusがマージしたプロジェクトとしてスタートし、現状ではまだベータ版という状態だが、これから多くのユースケースが出てくることが期待されている。これからも可視化を支える黒子として、立ち位置は地味だが活躍していくだろう。引き続き注目したい。

OpenTelemetry公式ページ

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

運用監視イベント
第7回

ベンダーニュートラルな可視化ツールOpenTelemetryの最新情報を紹介

2021/3/29
可視化のためのプロジェクトOpenTelemetryの最新情報を、KubeConのセッションなどから解説する。
OSSイベント
第6回

KubeCon NA 2020で語られたオープンソースに貢献する意味・メリットとは?

2021/3/25
KubeCon NA 2020において、オープンスースに貢献する意味を元Facebookのコンサルタントが解説したセッションを紹介する。
クラウドイベント
第5回

KubeCon NA 2020 LinkerdとAmbassadorを使ったマルチクラスター通信を紹介

2021/3/23
LinkerdとAmbassadorを使ったマルチクラスターの実装例を、BuoyantとAmbassador Labsのエンジニアが紹介した。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています