OpenTelemetry 実践解説書 アウトライン
OpenTelemetry は、クラウドネイティブ環境やマイクロサービスにおいて、システムの動作状況を観測・分析するための標準規格およびツール群です。分散トレーシング、メトリクス収集、ログ管理といった「オブザーバビリティ(可観測性)」を一元化されたプロトコル(OTLP)で実現します。
本書では、OpenTelemetry の基礎概念から実践的なシステム構築までをわかりやすく解説します。プログラム言語には Python と C# を使用します。また、最小構成である「OpenTelemetry SDK と Jaeger v2 の直接連携」から、実運用に即した「Collector、Jaeger v2、Prometheus、Grafana を組み合わせたフルスタック構成」まで、コンテナ環境(Docker Compose)を用いた具体的な構築手順と動作コードを提供します。
章構成
-
1. OpenTelemetry の基礎概念とアーキテクチャ
オブザーバビリティの重要性、3大シグナル(トレース、メトリクス、ログ)の役割、標準通信プロトコル OTLP の仕組み、SDK と OpenTelemetry Collector の関係性を整理します。
-
2. 単純構成:OpenTelemetry SDK と Jaeger v2 によるトレース構築
OTLP をネイティブサポートする Jaeger v2 を用いた最小構成を構築します。Docker Compose による環境立ち上げと、Python および C# から直接 Jaeger にトレースを送信する手順を解説します。
-
3. フルスタック構成:Collector、Jaeger v2、Prometheus、Grafana の統合環境
OpenTelemetry Collector を中核に据え、トレースを Jaeger v2 へ、メトリクスを Prometheus と Grafana へ集約・可視化するフルスタック基盤を Docker Compose で構築します。
-
4. 実践アプリケーション実装:Python と C# による計測
Python と C# のアプリケーションから、トレース(Span)およびメトリクス(Counter、Histogram)を Collector 経由で送信する完全なソースコードと、Grafana や Jaeger での確認手順を解説します。
-
分散トレーシングにおけるコンテキスト伝播、サンプリング戦略、機密情報のマスク処理、テレメトリ収集がうまくいかない場合のトラブルシューティング手順をまとめます。