OpenTelemetry
OpenTelemetryは、複数のプロセス、システムをまたがってアプリケーションの処理を追跡する分散トレースの仕組みを提供するフレームワークです。収集した情報から、通信の流れを把握し、統計情報(メトリクス)によってボトルネックや問題のプロファイリングを行えます。 サイト
Python用の配布コード
Django
背景
OpenTelemetry が成長して成熟するにつれ、オブザーバビリティやモニタリングツールが、クラウドネイティブソフトウェアから遠隔測定データを作成して収集するための最良の方法として OpenTelemetry にコンセンサスを得て、より多くのディストリビューションが登場することになると思います。プロプライエタリなエージェントや互換性のないプロトコルの時代は過ぎ去り、オブザーバビリティのニーズに高品質のオープンソース計測器を採用する実践者が増えています。OpenTelemetryプロジェクトは、このような貢献にスポットライトを当て、エンドユーザーが必要な統合機能をレジストリから見つけられるようにしています。 OpenTelemetry becomes a CNCF incubating project | Cloud Native Computing Foundation 資料
ドキュメントの入り口
TraceProviderにSpanProcessorをくっつけて、SpanProcessorからConsoleSpanExporterでコンソールに出力
consoleにspanの情報(生JSONデータ)が出力される
jaegerへexportする例
JaegerのDockerを立てて確認する手順
JaegerExporterでJaegerにエクスポートする
アーキテクチャ
各AppにExport先を直接指定するため、Export先が変更になったら全てのAppの修正が必要
各AppがOTELプロトコルではなくExport先のフォーマットに変換する必要がある
各AppはOTELプロトコルだけ話せれば良い