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 のエンタープライズ クラウド ストレージ ソリューション
みなさんこんにちは。私は湖南省出身のキネスです。今日は、主にウェブサイト戦略、ウェブサイトディレクト...
企業が市場の変化に対応し、企業におけるマーケティングの役割を再考する新たな機会をつかむのを支援するた...
一般的に、企業のウェブサイトのインターネットマーケティングを行う場合、ウェブサイトの最適化は避けられ...
プロモーションプロセス中にトラフィックを適切に誘導するにはどうすればよいでしょうか?今日は、Weib...
外部リンクの構築は非常に重要なタスクです。ウェブサイトの最適化のプロセスでは、ウェブサイトのコンテン...
各地に支社を設立することに戸惑い、何をすべきか分からないことはありませんか?特にメインサイトと支社サ...
スーパーコンピューターは、あらゆるコンピューターの中で最も高速かつ強力なコンピューターです。科学研究...
今の時代はもはやネットワーク情報が限定された時代ではなく、社会経済の急速な発展に伴い、ネットワーク情...
Xiaohongshu は、電子商取引ライブストリーミングの大きな市場に進出したいと考えています。 ...
先ほど、ローカル ストレージと NFS 共有ストレージについて学習しました。これらのストレージ タイ...
新快報によると、深セン在住の姚さんは、アップルのiPhoneにはプリインストールされたソフトウェアを...
多くの画像ウェブサイト、特に美しい写真を表示するウェブサイトは、Baidu のキーワードランキングに...
5月22日、Googleはパンダアルゴリズムが正式に4.0にアップグレードされたことを正式に発表しま...
本日、Appleは日本向け2016年ゲームリストを発表し、その中で「クラッシュ・ロワイヤル」が年間最...
10月20日は私にとって最も忘れられない日であり、人生で最も辛い日でもあります。私が担当していたHH...