地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Grafana Tempo】入門する

github.com

Grafana Tempoとは

Grafana Tempoは、分散トレーシングデータを効率的に格納して検索するためのオープンソースの分散トレーシングバックエンドシステムです。Grafana Labsによって開発されたこのシステムは、特に大量のトレースデータを扱う際のコスト効率とスケーラビリティに焦点を当てています。Grafana Tempoは、Grafanaと統合することで、視覚的なトレースデータの解析やデバッグが容易になります。主な特徴は以下です。

  • コスト効率: Tempoはデータを格納するために、高いストレージ効率を持つオブジェクトストレージを使用します。これにより、オンプレミスやクラウド環境での運用コストを削減できます。
  • スケーラビリティ: 大規模なデータセットを扱う能力があり、様々な規模のデプロイメントでの利用が可能です。
  • 統合性: Grafanaとのシームレスな統合により、トレーシングデータから直接ダッシュボードを作成し、分析することができます。
  • シンプルなアーキテクチャ: Tempoはシンプルなアーキテクチャを採用しており、設定や管理が容易です。
  • 互換性: 既存のトレーシングフォーマット(例えば、JaegerやZipkin)と互換性があります。

アーキテクチャ

https://grafana.com/docs/tempo/latest/operations/tempo_arch.png

公式より引用それぞれのコンポーネントは以下です。

  • Ingesters
    • Ingestersはデータを一時的にメモリ上に保持し、バッチ処理が可能なサイズになるまで集約します。このバッチ処理されたデータはその後、永続ストレージに書き込まれます。
  • Distributors
    • Distributorsは、受け取ったトレースデータを複数のIngestersに均等に分散させる役割を担います。これにより、負荷を均等に分散し、システムのスケーラビリティと耐障害性を向上させます。
  • Storage
    • Tempoはオブジェクトストレージを使用してトレースデータを保存します。Grafana Labsの実装では、Google Cloud Storage、Amazon S3、またはその他の互換性のあるオブジェクトストレージが利用可能です。トレースデータは高い圧縮率で保存され、コスト効率良く大量のデータを扱うことができます。
  • Queriers
    • Queriersはストレージからデータを検索する役割を担います。ユーザーがトレースデータを要求すると、Queriersがデータを取得し、必要な情報をユーザーに提供します。インジェスターから直接データを引き出すこともあり、これにより最近のデータへのアクセスが迅速になります。
  • Compactors
    • コンパクターはストレージ内のデータを定期的に圧縮や最適化を行うコンポーネントです。これにより、データの取得効率が向上し、ストレージコストを抑えることができます。

Tempo CLI

grafana.com