オープンソースのメトリクスプラットフォームGrafanaの作成者であるGrafana Labsは、先頃、分散トレースバックエンドであるGrafana Tempoをリリースした。ElasticSearchやCassandraなどの1つ以上のデータストアの使用を通常必要とする同様のソリューションと比較して、動作するために必要なのはAmazon S3やGoogle Cloud Storage (GCS) などのオブジェクトストレージのみだ。
エンドツーエンドのレイテンシグラフ (トレース) をほぼリアルタイムで使用することにより、分散トレースシステムは、エンジニアが特定のリクエストに他のリクエストよりも時間がかかる理由を理解するのに役立つ。14日間の保存期間で、Tempoは現在17万スパン (個別操作)/秒を消費し、これらをグループ化してGCSに保存する。
Grafana LabsのシニアバックエンドエンジニアであるJoe Elliott氏が発表を行い、特定のトレースを見つける必要性に関するGrafanaエンジニアの課題について説明した。
100%のサンプリングが必要であり、ElasticsearchまたはCassandraクラスタを維持するための労力が少ないため、Grafanaのエンジニアは、現在のダウンサンプリングされた分散トレースシステムに不満を持っていた。
Grafana Tempoは、トレースIDの検索可能なインデックスを有効にして、既存のログシステムと統合し、ログ行のトレースIDからリンクを作成する。チームは、パス、ステータスコード、レイテンシ、ユーザ、IPで、トレースIDと同じログ行を検索できる。彼はまた、Grafanaのログ集約システムであるLokiのバージョン2.0についても簡単に言及した。
出典: https://grafana.com/blog/2020/10/27/announcing-grafana-tempo-a-massively-scalable-distributed-tracing-system/
Elliott氏はさらに、Grafanaグラフに直接埋め込まれたメトリッククエリに基づくトレースへのリンクを持つトレースパターンを示すExemplarsを導入した。現在開発中のExemplarsは、GrafanaとPrometheusをサポートする予定だ。
また、メトリックとログデータをGrafana Cloudに送信できるデータコレクタであるGrafana Cloud Agentについても説明した。これにより、オペレータはExemplarからログに簡単にアクセスできる。
出典: https://grafana.com/blog/2020/10/27/announcing-grafana-tempo-a-massively-scalable-distributed-tracing-system/
周囲のコミュニティは成長し、GithubでTempoが1000スターに達したとき、リリースに関するフィードバックを提供している。TwitterユーザのWiard van Rij氏は、「@grafanaのトレース用の新しいツールTempoを使用して概念実証を行いました。正直なところ、アイデアとツールは本当に素晴らしいと思います。それでも、アルファの前の前だと思います。これはかっこいい。オープンソースであり、適切な採用とサポートがあれば、これは変わるでしょう!」とツイートした。別のTwitterユーザVale@ganbara.nai氏は、「私はgrafana-prometheus-lokiの使いやすさが大好きなので、Tempoも楽しみにしています」とツイートした。
Grafana Labsのチームは、コミュニティに構成手順とパフォーマンスの改善を提供してきた。Grafana LabsのシニアソフトウェアエンジニアであるRobert Fratto氏は、トレースを収集してTempoに送信するようにGrafana Cloud Agentを構成することについてブログに書いている。Elliott氏は、Bloomフィルタのシャーディングに関連するパフォーマンスの向上についてもツイートした。
詳細については、読者はオンデマンドのObservabilityConセッション、Grafanaで簡単に作成されたトレースを視聴し、Grafana Slack #tempoチャネルまたはtempo-users googleグループで会話に参加できる。Tempoのドキュメントは、このリンクから入手できる。