オブザーバビリティを実現する「OpenTelemetry」とは
OpenTelemetryは、ソフトウェアのパフォーマンスや分析に有用なテレメトリーデータの計測・収集・加工・転送のためのAPIやSDKが含まれたツールキットです。OTelと略されることもあります。メトリクス、イベント、ログ、トレースといったテレメトリーデータを扱うスタンダードを目指すべく仕様を公開しており、コミュニティによる活動が活発で精力的に開発が進められているプロジェクトです。
テレメトリーデータを収集するためには、従来はベンダーごとに異なるエージェントを導入する必要がありました。またオープンソースのツールを使う場合でも、複数組み合わせて利用することが多く、標準化にはほど遠い状況でした。それがOpenTelemetryの登場によって、ITシステムからテレメトリーデータを収集する方法の標準化に向けて進んでいます。
OpenTelemetryプロジェクトは、Cloud Native Computing Foundation (CNCF)のIncubating Projectです。CNCFのプロジェクトとして有名なものには、Kubernetes、Prometheus、Istioなどがあることをご存じの方も多いと思います。2023年のCNCF年次レポートによると、OpenTelemetryプロジェクトは、Kubernetesの次に進行速度が活発なプロジェクトに位置しています。
Kubernetesの成功からもわかるように、活動が活発なプロジェクトは将来的に成功する可能性が高いと考えられます。
OpenTelemetryに興味を持たれた方は、ぜひ本家のドキュメントもご覧になってください。
オブザーバビリティとOpenTelemetryの関係
オブザーバビリティはデータに基づいてシステム状態を正確に理解するための考え方であり、OpenTelemetryはそのテレメトリーデータを収集するためのツールキットであると解説しました。
ITシステムにおいてオブザーバビリティを実現するためには、システム状態を表すさまざまなデータが必要です。現代の複雑なITシステムから効率良くデータを収集するにはどうしたら良いでしょうか。
その役割を担うのが、まさにOpenTelemetryなのです。インフラストラクチャのパフォーマンスデータ、アプリケーションのトレースデータ、システムから出力されるログといった広範囲にわたるテレメトリーデータをOpenTelemetryだけで収集することが可能です。
OpenTelemetryのドキュメントにも「OpenTelemetryはオブザーバビリティフレームワーク」であると記載されています。
しかしながら、テレメトリーデータを収集するだけではオブザーバビリティを実現することはできません。集めたデータを可視化するためのバックエンドが必要になります。
オブザーバビリティバックエンドの役割は、テレメトリーデータをグラフ化するだけではありません。コンテキスト情報に基づいて調査を深掘りできることが重要です。例えば、アプリケーションで発生した問題の調査では、フロントエンドブラウザのセッション、アプリケーションのトレース、アプリケーションが稼働していたコンテナのリソース、アプリケーションとインフラのログといった一連の情報を紐付けてトラブルシューティングできると根本原因特定までの時間を短縮することができます。また、幅広いデータ間での相関分析といった作業を迅速かつスムーズに支援できることも重要な役割となります。
オブザーバビリティバックエンドの選択肢は豊富に揃っています。オープンソースのバックエンドをオンプレミスに構築することもできますし、商用ベンダーのSaaSソリューションを利用することもできます。