ソフトウェア
上級

Grafana Tempo(グラファナテンポ)

Grafana Labs が 2020 年公開した分散トレースバックエンド。Jaeger / Zipkin / OpenTelemetry 互換 + オブジェクトストレージ(S3 / GCS / Azure)で大規模ログ集約、Loki + Prometheus と LGTM スタックを構成。

0 回閲覧
0 いいね
2026/5/9 更新
関連タグ
Software
Tempo
Grafana
Distributed Tracing
OpenTelemetry
2020

概要

Grafana Tempo(グラファナ テンポ)は、Grafana Labs が 2020 年 10 月に公開、後年 Grafana Labs プロジェクトとして開発継続している分散トレースバックエンド + 高スケール分散トレース集約システムです。「Tempo」の名称は音楽用語「tempo(テンポ、速度)」由来で、高速 + リズミカルな分散トレース処理を表現しています。

「Grafana LGTM スタック」の構成は、(1)L = Loki(2018、ログ)・(2)G = Grafana(2014、可視化)・(3)T = Tempo(2020、分散トレース)・(4)M = Mimir(2022、Prometheus 互換メトリクス時系列 DB)、で完全な統合観測スタックを提供します。Tempo はその T(トレース)を担う重要コンポーネントとして、Jaeger / Zipkin / OpenTelemetry / OpenCensus / AWS X-Ray / Google Cloud Trace 等の主要分散トレースシステムと完全互換で実装されました。

技術アーキテクチャは、(1)入力: Jaeger / Zipkin / OpenTelemetry(OTLP)/ OpenCensus 形式の分散トレース受信・(2)Distributor: トレースデータ受信 + 検証 + Ingester への配信・(3)Ingester: トレースデータ書込 + チャンク管理(短期保持メモリ + 長期保持オブジェクトストレージ)・(4)Backend Storage: AWS S3 / GCP GCS / Azure Blob / 互換オブジェクトストレージ(直接保存、フルマネージド DB 不要)・(5)Querier: TraceQL クエリ実行 + Span 検索・(6)Query Frontend: クエリパフォーマンス最適化 + キャッシュ、です。

最大の特徴は、(1)オブジェクトストレージ直接保存(AWS S3 / GCP GCS / Azure Blob、Elasticsearch + Cassandra 等の DB バックエンド不要)で超低コスト + 大規模スケール対応・(2)TraceID ベース検索のみで全文検索インデックス不要のシンプル設計(Tempo 1.x、TraceQL は Tempo 2.0+ 2023 年で追加)・(3)Grafana 統合 + ログ(Loki)+ メトリクス(Prometheus / Mimir)+ トレース(Tempo)の Cross-correlation で根本原因分析の生産性向上、です。

TraceQL(Trace Query Language)は Tempo 2.0(2023)で導入されたクエリ言語で、PromQL / LogQL に類似した文法で複雑な分散トレース検索が可能になりました。例: {service.name="frontend" && duration > 100ms && span.http.status_code=500} で「frontend サービスの 100ms 超過 + HTTP 500 エラーの span を検索」等のクエリを表現できます。

主な採用は、(1)Grafana Cloud(SaaS、無料 50GB/月 + 有料拡張)・(2)Grafana Enterprise(オンプレ + サポート)・(3)自前ホスティング(Apache 2.0 ライセンス、無料、Helm Chart デプロイ)・(4)主要 Kubernetes 環境(EKS / GKE / AKS / OpenShift / Rancher)・(5)マイクロサービス + クラウドネイティブアプリ + Service Mesh(Istio / Linkerd / Cilium 統合)、で 2020-2026 年に急速に普及しています。

Jaeger / Zipkin との比較で Tempo の利点は、(1)Object Storage コスト 1/10-1/100・(2)Grafana LGTM 統合・(3)シンプルな TraceID + TraceQL 検索、Jaeger / Zipkin の利点は、(1)歴史 + コミュニティ規模・(2)CNCF プロジェクトとしての安定性、というトレードオフです。

主な特徴・仕組み

  • 公開: Grafana Labs 2020 年 10 月、Apache 2.0 ライセンス。
  • LGTM スタック: Loki + Grafana + Tempo + Mimir。
  • 入力: Jaeger / Zipkin / OpenTelemetry(OTLP)/ OpenCensus。
  • バックエンド: AWS S3 / GCP GCS / Azure Blob / 互換 Object Storage。
  • 検索: TraceID ベース(Tempo 1.x)+ TraceQL(Tempo 2.0+ 2023)。
  • TraceQL: PromQL 風文法、Span 属性 + 持続時間 + サービス名フィルタ。
  • コスト: Object Storage 直接保存で Jaeger + Cassandra の 1/10-1/100。
  • Grafana 統合: ログ(Loki)+ メトリクス(Prometheus)+ トレース(Tempo)Cross-correlation。
  • 主要採用: Grafana Cloud / Enterprise / 自前 / EKS / GKE / AKS。
  • Service Mesh: Istio / Linkerd / Cilium 等と統合。
  • 主要競合: Jaeger / Zipkin / AWS X-Ray / Google Cloud Trace / Datadog APM / New Relic。
  • バージョン: 現在 v2.4+(2024-2026)。

Tempo / 競合分散トレースバックエンド比較

バックエンド提供バックエンド DBコスト
Grafana TempoGrafana LabsObject Storage(S3 / GCS)低
JaegerUber / CNCFCassandra / Elasticsearch中
ZipkinTwitterMySQL / Cassandra / Elasticsearch中
AWS X-RayAWSクラウドネイティブ中
Google Cloud TraceGoogleクラウドネイティブ中
Datadog APMDatadogSaaS高
New Relic Distributed TracingNew RelicSaaS高

自作PCユーザー向けの注意点

Grafana Tempo は通常のコンシューマ自作 PC で必要になる技術ではありませんが、ホビーホームラボ + 自宅 Kubernetes 環境 + マイクロサービス + 観測性開発の上級者には極めて有用です。Docker Compose + Tempo + Grafana + OpenTelemetry Collector の組合せで、自宅サーバの統合観測基盤(LGTM スタック)を構築できます。

OpenTelemetry SDK(Java / Python / Go / Node.js / .NET / Rust)を使ってアプリケーションに分散トレース計装 + Tempo に送信 + Grafana で可視化する一連のフローは、現代マイクロサービス + クラウドネイティブ開発の必須スキルです。Grafana Cloud Free Tier(無料 50GB/月 トレース)も提供されており、低コストで業務級観測スタック学習が可能です。

関連用語との違い

  • Jaeger: CNCF Graduated 分散トレース、Tempo 主要競合。
  • Zipkin: Twitter 系古典分散トレース、Tempo 互換可能。
  • OpenTelemetry: 分散トレース標準仕様、Tempo 主要入力フォーマット。
  • Loki: Grafana Labs ログ集約、LGTM の L。
  • Mimir: Grafana Labs メトリクス時系列 DB、LGTM の M。

よくある質問(FAQ)

Q1: Tempo と Jaeger どちらを選ぶべきですか? A: Object Storage + コスト重視 + Grafana 統合 → Tempo、CNCF + 歴史 + 安定性 + 既存 Jaeger エコシステム → Jaeger です。新規プロジェクト + Grafana ユーザー + マルチクラウド環境では Tempo が増加傾向、企業 + レガシー Jaeger 移行困難な環境では Jaeger 継続が一般的です。

Q2: TraceQL は何が便利ですか? A: Tempo 2.0(2023)で導入された Trace Query Language で、PromQL / LogQL 風の文法で複雑な分散トレース検索が可能です。例えば、{ service.name="checkout" && duration > 1s && span.http.status_code >= 500 } で「checkout サービスの 1 秒超過 + HTTP 500+ エラー」を検索可能で、Cross-correlation 根本原因分析が大幅に効率化されます。

Q3: 自宅で Tempo を試す方法は? A: Docker Compose + Tempo + Grafana + OpenTelemetry Collector のサンプル構成が GitHub で多数公開されており、docker-compose up で 5 分で起動可能です。OpenTelemetry SDK でローカル Java/Python アプリに計装 + Tempo に送信 + Grafana で可視化、業務級観測スタックの学習が低コストで実現できます。

まとめ

  • Grafana Labs 2020 公開の分散トレースバックエンド
  • Object Storage 直接保存で超低コスト + 大規模スケール
  • Jaeger/Zipkin/OpenTelemetry 完全互換 + TraceQL
  • LGTM スタック(Loki+Grafana+Tempo+Mimir)の T
この記事について
カテゴリーソフトウェア
難易度上級
作成日2026/5/9