クラウド
上級

Jaeger (分散トレーシング・2017)(イェーガー)

Uber 2017年公開・CNCF Graduated の分散トレーシングシステム。OpenTracing 由来・Sampling・UI で マイクロサービス Request Flow 可視化。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
分散トレーシング
Jaeger
CNCF

概要

Jaeger はUber Engineering が2017年4月にオープンソース公開した分散トレーシングシステム。「Jaeger」(ドイツ語Hunter・狩猟者) 由来。Google Dapper 論文 (2010) 影響、OpenTracing (CNCF 2016) ベース・Trace ID + Span 構造でマイクロサービス間Request Flow を可視化。CNCF 加入 (2017-09)・Graduated (2019-10)。Adaptive Sampling・Cassandra / Elasticsearch / Kafka Backend・Multi-tenant UI で大規模マイクロサービス監視の主要OSS、OpenTelemetry (2019) 標準化後も継続採用。

Jaeger 主要マイルストーン

年月出来事
2010-04Google Dapper 論文
2016-10OpenTracing (CNCF)
2017-04Uber Jaeger 公開
2017-09CNCF Incubating
2019-10CNCF Graduated
2020OpenTelemetry 統合 (Jaeger Receiver)
2023Jaeger v2 開発開始 (OTel Native)
2024-08Jaeger v2 Beta

分散トレーシング基本概念

[ユーザリクエスト: Trace ID = abc-123]
├── [Span 1: API Gateway (10ms)]
│     └── [Span 2: Auth Service (5ms)]
├── [Span 3: User Service (15ms)]
│     ├── [Span 4: PostgreSQL Query (3ms)]
│     └── [Span 5: Redis Cache (1ms)]
└── [Span 6: Order Service (20ms)]
      └── [Span 7: Payment Service (12ms)]
            └── [Span 8: External Payment API (8ms)]

各Span が「特定操作の開始 / 終了時刻 + 親子関係」を持ち、全体Trace = ユーザリクエスト1回の流れ。

Jaeger アーキテクチャ

コンポーネント役割
Client各サービスSDK
AgentLocalhost UDP Receiver (Pod別)
CollectorAggregator + Storage 書込
StorageCassandra / Elasticsearch / Kafka / Badger
QueryUI Backend
UIWeb GUI
Spark DependenciesService Graph 計算

主要機能

機能内容
Trace 検索Service名 / Operation / Tag
Trace 可視化Gantt Chart 形式
Service GraphService 間依存図
Tag FilterHTTP Status / Error / Latency
SamplingAdaptive Probabilistic
Multi-tenantTenant別データ分離
Span Compare2 Trace 並列比較
Service PerformanceService別Latency集計
OpenTelemetry 受信OTLP 直接受信

Adaptive Sampling

大量Trace の中から重要なものを優先サンプリング:

戦略内容
Probabilistic確率Sampling (例: 1%)
Rate Limiting1秒N件まで
Constant全Sampling / 完全除外
Adaptiveエラー率高Service は多めSampling

100,000 req/sec の全Trace 保存は非現実的、Sampling で実用化。

Storage Backend

Backend用途
Cassandra大規模 (1日10億Span+)
Elasticsearch中規模 + 検索充実
KafkaStreaming (中間Buffer)
Badger単一ノード (Embedded)
ClickHouse分析重視 (Jaeger v2)
OpenSearchElasticsearch代替

大規模Uber 規模で Cassandra・中規模はElasticsearch が一般。

主要採用先

企業用途
Uber (起源)数千マイクロサービス
Robinhood取引追跡
Symantec / Nortonセキュリティサービス
SalesforceCRM サービス
Red Hat OpenShiftKubernetes Tracing
GrafanaLabsTempo の参考実装
Microsoft Azure一部内部利用

OpenTelemetry 統合

Jaeger v1 はOpenTracing ベースだが、2020年以降OpenTelemetry 統合:

  • Jaeger Receiver: OTLP 直接受信
  • OpenTelemetry Collector → Jaeger Exporter
  • 既存Jaeger Client SDK も OTel 互換

Jaeger v2 (2024-)

OpenTelemetry Native 再設計:

  • OTel Collector ベース
  • ClickHouse Storage
  • v1 互換性維持
  • 性能改善

関連用語との違い

  • vs OpenTelemetry: 規格 / 実装
  • vs Zipkin: 同様分散トレース・Twitter 起源
  • vs Tempo: Grafana Lab製・大規模ScaleOut

FAQ

Q1: Jaeger vs Zipkin? A: 機能性Jaeger 優位・コミュニティ規模ほぼ同等・Zipkin はTwitter 起源で2012-早期・Jaeger はUber + CNCF で現代的。

Q2: 個人プロジェクト? A: 不要。マイクロサービス10+ で実利。Single Service + Logs / Metrics で十分。

Q3: Sampling 推奨? A: 100K+ req/秒 で1%・10K req/秒 で100%可能・「エラー時必ずSampling」のTail Sampling が推奨。

この記事について
カテゴリークラウド
難易度上級
作成日2026/5/15