オープンテレメトリー
OpenTelemetryは、ソフトウェアシステムからのテレメトリーをキャプチャおよびエクスポートするための標準化されたオープンソースフレームワークです。
定義
OpenTelemetry(通称OTel)は、ベンダーに依存しない観測性フレームワークであり、メトリクス、ログ、トレースなどのテレメトリー情報を生成するためにアプリケーションおよびインフラストラクチャをインスツルメンテーションするための共通のAPI、ライブラリ、ツールを定義します。特定のベンダーに縛られることなく、さまざまなモニタリングバックエンドへの一貫したテレメトリー信号の収集、処理、エクスポートを可能にします。複数のプログラミング言語および環境で分散システムをサポートするように設計されており、観測性ワークフローを簡素化し、カスタムインスツルメンテーションの必要性を減らします。Cloud Native Computing Foundationの下にあるオープンソースプロジェクトとして、OpenTracingやOpenCensusなどの先行プロジェクトからの教訓を活かして、拡張可能で統一された観測性標準を提供します。
プロ
- ベンダーに依存せずオープンソースで、特定の観測性プロバイダーにロックインしない
- 複数のプログラミング言語で標準化されたAPIとSDKを提供し、広範な互換性を確保
- 1つのフレームワークでメトリクス、ログ、トレースの複数のテレメトリー形式をサポート
- コレクターとエクスポートャーを備えた拡張可能なアーキテクチャで、柔軟なテレメトリーのルーティングを可能に
- 多くの観測性バックエンドとの統合を備えた強力なコミュニティとエコシステム
デメリット
- 有効に実装するには初期のセットアップと観測性のコンセプトの理解が必要
- サンプリングやフィルタリングを適切に設定しないと、システムにオーバーヘッドを生じさせる可能性がある
- テレメトリーのストレージと可視化は外部ツールに依存し、複雑さを追加する
- 標準化が最新のベンダー固有の機能に遅れることがある
- オールドシステムのインスツルメンテーションには大きな努力を要する
使用例
- マイクロサービスアーキテクチャでエンドツーエンドの観測性を実装し、サービス間でのリクエストをトレース
- モニタリングとアラートのためにクラウドネイティブアプリケーションからのパフォーマンスメトリクスとログを収集
- アプリケーションからのテレメトリー情報をPrometheusやJaegerなどのバックエンドシステムにルーティング
- 複雑なシステムにおけるレイテンシーとエラーを診断するために分散トレースを相関付ける
- 大規模なエンジニアリング組織におけるチームや言語ごとのインスツルメンテーションを標準化