generated at
OpenTelemetry
OpenTelemetryは、複数のプロセス、システムをまたがってアプリケーションの処理を追跡する分散トレースの仕組みを提供するフレームワークです。収集した情報から、通信の流れを把握し、統計情報(メトリクス)によってボトルネックや問題のプロファイリングを行えます。

サイト

Python用の配布コード
2021/02/13 v1.0.0rc1
2021/03/27 v1.0.0
2021/04/20 v1.1.0
2021/05/12 v1.2.0

Django

背景
2019/03/29: OpenTracingOpenCensusのマージが発表された
>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にエクスポートする
OpenTelemetry Collector を使ってTRACE情報をブリッジする手順
opencensus-exporter-tracer を流用してとりあえず動作確認できる


アーキテクチャ
OpenTelemetry Collectorを使わない場合
App -> Jaeger等のExport先
各AppにExport先を直接指定するため、Export先が変更になったら全てのAppの修正が必要
各AppがOTELプロトコルではなくExport先のフォーマットに変換する必要がある
App -> OpenTelemetry Collector -> Jaeger 等のExport先
各AppはOTELプロトコルだけ話せれば良い
Export先を変更した場合、OpenTelemetry Collectorから先だけ変更すれば良い