OpenTelemetry とは

デベロッパー、IT オペレータ、DevOps エンジニア、SRE(サイト信頼性エンジニア)の場合、構築または運用しているアプリのパフォーマンスと健全性に責任があります。アプリケーションが正常であり、パフォーマンスが設計どおりであるかどうかを判断するために使用する情報は、テレメトリー データと呼ばれます。技術プロバイダはテレメトリー データを収集するためのエージェントを作成していますが、そのエージェントを使用するとこうした技術プロバイダと関連付けられます。OpenTelemetry は、テレメトリー データ用のオープン スタンダードを 1 つ作成し、クラウド ネイティブ アプリケーションからデータを収集してエクスポートするための技術を作成します。これにより、モニタリングと分析が可能になります。

Google Cloud 上で動作するクラウド ネイティブ アプリケーションやインフラストラクチャのモニタリングと分析のために OpenTelemetry と Google Cloud のオペレーション スイートがどのように機能するかを学習します。

OpenTelemetry の概要

OpenTelemetry は、クラウド ネイティブ アプリケーションとインフラストラクチャから指標、トレース、ログ(今後)のキャプチャとエクスポートをするための単一のオープンソース標準と一連のテクノロジーを提供します。

最新のクラウド ネイティブ アプリケーションは分散されるため、テレメトリー データのキャプチャとエクスポートはより複雑になります。OpenTelemetry の単一の標準規格およびテクノロジー ツールを使用すると、データをキャプチャして、参加している技術ベンダーやオープンソース プロジェクトに簡単にエクスポートできます。

OpenTelemetry のメリット

クラウド ネイティブ アプリケーションに関連するデータの取得

OpenTelemetry には、言語固有の API が 1 セット用意されています。これらの API により、アプリケーションに含まれているウェブ フレームワーク、ストレージ クライアント、RPC システムなどからデータがキャプチャされます。カスタム指標、トレーススパン、ログ(近日提供予定)の作成に使用できます。

テレメトリー データの管理とエクスポートを簡素化

Collector を使用して、SDK、Prometheus クライアント、Zipkin や Jaeger クライアント、StatsD などの API、Linux および Windows VM から取得されたシステム指標によってキャプチャされたテレメトリーを集計、管理、エクスポートできます。

単一の標準セット

OpenTelemetry は 2 つのオープンソース プロジェクト(OpenCensus と OpenTracing)をマージした結果、異なる標準が設定され、ユーザーはエコシステムを選択しなければなりません。OpenTelemetry は単一の標準セットを作成するため、複数のベンダーやプロジェクトに取り組むことができます。

分散システム全体でアプリケーションのパフォーマンスを最適化する

OpenTelemetry のソフトウェア開発キット(SDK)は、API を使用して、リクエストのレイテンシとスループットの指標を自動的に収集し、分散トレースを伝搬して、キャプチャしたデータを、使用している Google Cloud オペレーション スイート、Collector などの APM ツールにエクスポートします。

OpenTelemetry の用途

OpenTelemetry は、分散システム間でクラウド ネイティブ アプリケーションを実行している組織でよく発生する問題を解決できます。

マイクロサービス アプリケーションの健全性のモニタリング

分散システム内のアプリケーションから指標とトレースをキャプチャします。このデータにより、アプリケーションが設計どおりに実行されているかどうかがわかります。

異なるユーザー グループに対する属性リソースの使用

OpenTelemetry により、マイクロサービス間でリクエストをキャプチャできるので、共有システムのリソース使用量を元のグループ別に追跡できます。

共有リソース間で優先順位の高いリクエストを作成する

アプリケーション内に階層型のリクエストを作成し、競合するリクエストが共有リソースに到達したときに、リクエストが正しく振り分けられるようにします。

キャプチャされたトレース、指標、ログ(近日提供予定)は、Google Cloud オペレーション スイート(Cloud MonitoringCloud Trace など)、オープンソース ツール(Prometheus など)、バックエンド(SplunkNew RelicDynatraceLightstepDatadog など)、その他多くに送信することができます。制限のない数の宛先に同時にエクスポートできます。

また、Cloud Spanner クライアント ライブラリなどの Google Cloud のクライアントは、OpenTelemetry とネイティブに統合することにより、最高水準の管理を実現できます。