Grafana Tempo による分散トレース

Grafana Tempo による分散トレース

[[389241]]

Grafana Tempo は、新しいオープンソースの大容量分散トレース バックエンドです。

Tempo for Grafana は、Grafana Labs が提供する、使いやすくスケーラブルな分散トレース バックエンドです。 Tempo は Grafana、Prometheus、Loki と統合されており、動作にはオブジェクト ストレージのみが必要なので、低コストで簡単に運用できます。

私はこのオープンソース プロジェクトに最初から関わってきたので、Tempo の基本について説明し、クラウド ネイティブ コミュニティが Tempo に注目している理由を説明します。

分散トレース

アプリケーションに対して行われたリクエストに関するテレメトリ データを収集したいというのはよくあることです。しかし、今日のサーバーでは、通常、単一のアプリケーションが複数のマイクロサービスに分割され、複数の異なるノードで実行される場合があります。

分散トレースは、個別のサービスで構成されている可能性のあるアプリケーションのパフォーマンスに関する詳細な情報を取得する方法です。リクエストがアプリケーションに到着すると、リクエストのライフサイクルの統合ビューが提供されます。 Tempo の分散トレースは、モノリシック アプリケーションまたはマイクロサービス アプリケーションに使用でき、リクエスト スコープの情報を提供するため、可観測性の 3 番目の柱となります (他の 2 つはメトリックとログです)。

以下は、アプリケーションのガント チャートを生成する分散トレース システムの例です。 Jaeger HotROD デモ アプリケーションを使用してトレースを生成し、Tempo でホストされている Grafana Cloud に保存します。このグラフは、サービスと機能別に分類されたリクエスト処理時間を示します。

Grafana Tempo のガント チャート

インデックスのサイズを小さくする

トレースには、豊富で明確に定義されたデータ モデルに豊富な情報が含まれています。通常、トレース バックエンドとのやり取りには、メタデータ セレクター (サービス名や期間など) を使用してトレースをフィルター処理することと、フィルター処理されたトレースを視覚化することの 2 種類があります。

検索を強化するために、ほとんどのオープンソースの分散トレース フレームワークでは、サービス名、操作名、タグ、期間など、トレース内の多くのフィールドにインデックスを付けます。その結果、インデックスが大きくなり、Elasticsearch や Cassandra などのデータベースを使用する必要が生じます。しかし、これらは管理が難しく、大規模に運用するにはコストがかかるため、Grafana Labs の私のチームは、より良いソリューションを考案することに着手しました。

Grafana では、オンコール デバッグ ワークフローは、メトリック レポートの使用 (アプリケーションのメトリックを保存するために、Prometheus を拡張する Cloud Native Foundation のインキュベート プロジェクトである Cortex を使用) から始まり、問題をドリルダウンし、問題のあるサービスのログを精査し (ログは、ログ用の Prometheus に似た Loki に保存します)、特定のリクエストのトレースを調べます。フィルタリングに必要なすべてのインデックス情報は Cortex と Loki で利用できることがわかりました。ただし、これらのツールを通じてトレースの検出を可能にするための強力な統合と、トレース ID によるキー値の検索を行うための優れたストアが必要でした。

こうしてGrafana Tempoプロジェクトが始まりました。取得したトレース ID に基づいてトレースすることに重点を置くことで、Tempo は依存性が最小限で、大容量、低コストの分散トレース バックエンドとなるように設計されました。

操作が簡単でコスト効率が良い

Tempo はオブジェクト ストレージ バックエンドを使用しますが、これが唯一の依存関係です。単一バイナリでもマイクロサービス モードでも使用できます (簡単に開始する方法については、リポジトリ内の例を参照してください)。オブジェクト ストレージを使用すると、サンプリングなしで大量のアプリケーション トレースを保存することもできます。これにより、100 万件のリクエストのうち 1 件でエラーが発生したり、遅延が長くなったりしたリクエストのトレースが破棄されることがなくなります。

オープンソースツールとの強力な統合

Grafana 7.3 には Tempo データ ソースが含まれており、Tempo からのトレースを Grafana UI で視覚化できます。さらに、Loki 2.0 の新しいクエリ機能により、Tempo での追跡がさらに簡単になります。 Prometheusとの統合のために、チームは以下のサポートを追加しています。模範一例として、時系列データに追加できる高カーディナリティのメタデータ情報が挙げられます。メトリック ストレージ バックエンドはメトリックをインデックス化しませんが、Grafana UI でメトリック値を取得して表示できます。この例ではさまざまなメタデータを保存できますが、このユースケースでは、Tempo との緊密な統合のためにトラッキング ID が保存されます。

この例では、リクエスト レイテンシ ヒストグラムを使用したサンプルの使用法を示します。各サンプル データ ポイントは Tempo のトレースにリンクされています。

Tempo での例の使用

メタデータの一貫性

コンテナ化されたアプリケーションとして実行されているアプリケーションによって発行されるテレメトリには、通常、何らかのメタデータが関連付けられています。これには、クラスター ID、名前空間、ポッド IP などが含まれます。これは、必要に応じて情報を提供するのに適していますが、メタデータに含まれる情報を生産的な目的に使用できるとさらに便利です。 たとえば、Grafana クラウド エージェントを使用してトレース情報を Tempo にインポートできます。エージェントは、Prometheus サービス検出メカニズムを使用して Kubernetes API からメタデータ情報をポーリングし、アプリケーションによって発行されたクロスドメイン データにこれらのタグを追加します。このメタデータも Loki でインデックス化されるため、メタデータを Loki ラベル セレクターに変換することで、トレースから特定のサービスのログの表示に簡単にジャンプできます。

以下は、Tempo トレースの特定の範囲のログを表示するために使用できる一貫したメタデータの例です。

クラウドネイティブ

Grafana Tempo はコンテナ化されたアプリケーションとして使用でき、Kubernetes や Mesos などのオーケストレーション エンジン上で実行できます。フェッチ/クエリ パスのワークロードに応じて、さまざまなサービスを水平方向にスケーリングできます。 Google Cloud Storage、Amazon S3、Tempo Azure Blog Storage などのクラウドネイティブ オブジェクト ストレージを使用することもできます。詳細については、Tempo ドキュメントのアーキテクチャ セクションを参照してください。

テンポを試す

これが私たちにとって役に立ったのと同様に、あなたにとっても役に立った場合は、ぜひ Tempo リポジトリをクローンして試してみてください。

<<:  2021 年のトップ 5 のエンタープライズ クラウド ストレージ ソリューション

>>:  Redis 分散ロックで発生するシリアル化の問題

推薦する

WeChat Momentsで「古い顧客を殺す」ことで、月に数十万元を稼ぐことはまだ可能ですか?

WeChatはモバイルソーシャルコミュニケーションの新時代を開いたと言っても過言ではありません。その...

ガートナーのリサーチディレクター、Li Jing氏: 技術革新からビジネス革新へ、業界のクラウドプラットフォームを活用してビジネスイノベーションを推進

業界クラウドに関しては、誰もがよく知っていると思います。クラウドコンピューティングの発展と企業のデジ...

Kubernetes のバックアップと復元でよくある 7 つの間違い

翻訳者 |張哲剛校正 |孫淑娟 梁策企業が Kubernetes を本番環境に導入し、Kuberne...

キャッシュバックサイトはリスクが高いとよく言われ、お金を使ってもお金持ちにはなれません

【ニュースの背景】今年に入ってから、いくつかのショッピング割引ウェブサイトが継続的に摘発され、調査さ...

VMware と NVIDIA が企業に AI をもたらす次世代ハイブリッド クラウド アーキテクチャを発表

VMworld 2020 において、VMware と NVIDIA は、AI 向けのエンドツーエンド...

ZhihuはWeiboの地位を脅かしているのか?

6月中旬、新浪微博は突然、トレンド検索を1週間修正すると発表したため、微博で情報を入手したり議論に参...

張朝陽はWeiboでSogouの3B戦争への参加が3SB戦争にアップグレードされたと発表した。

最近、360とBaiduの争いがインターネット業界で話題になっており、この戦いは業界では冗談めかして...

11 コア システムを完全にクラウドネイティブ化: 効率が 2 倍になり、コストが 80% 削減されました

2020年の天猫ダブル11カーニバルシーズンの取引量は最終的に4982億に達し、前年比26%増加しま...

百度検索が大きく変化、インデックス減少の詳細な分析

2012 年は激動の年でした。Baidu のアルゴリズムは絶えず調整され、変更されてきました。含まれ...

justg: 500M 帯域幅「3 つのネットワーク」 - 「南アフリカ cn2 gia vps」簡単な評価

justg は以前、100M 帯域幅の VPS を宣伝していました。そのときの特別価格は年間 19....

ウェブサイトのコンテンツを更新する必要があるのはなぜですか?

なぜ Web サイトのコンテンツを更新する必要があるのでしょうか? 多くの人は、更新されたときにのみ...

主流の分散ストレージ技術の比較分析と応用についてお話ししましょう

[[323651]]分散ファイルシステム分散ファイル システム (DFS) とは、必ずしもローカル...

Cloudcone: 登録から使用までの完全なチュートリアル + 最低構成の VPS のレビュー

多くの人が cloudcone をよく知っていますが、登録から使用までの簡単なチュートリアルを作成し...

evlgaming-1 メモリ KVM/6.5 USD/月/サポート Windows/カンザス

Evlgaming には、2010 年に登録され、カンザス州にオフィスを構える、flamevps と...