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 のエンタープライズ クラウド ストレージ ソリューション
6月中旬、新浪微博は突然、トレンド検索を1週間修正すると発表したため、微博で情報を入手したり議論に参...
クラウド移行を成功させるには、企業は専門家のチームを構築し、クラウド移行チームが果たす役割を理解する...
Dreamhost のイベントはしばらく前に発表されていましたが、私は今になって知りました。残念です...
自分のサイトが検索エンジンによってペナルティを受けたときは、まず自分のサイトがなぜペナルティを受けた...
ご存知のとおり、ウェブサイトの最適化のプロセスでは、自社ウェブサイトの詳細な最適化戦略分析を行い、関...
少し前に、PC ベースの Web サイト用のモバイル サイトを構築しました。わずか 1 週間で、We...
主なオンラインブックマークには、楽首、喜望峰、QQブックマーク、百度コレクション、アンソロジー、宝箱...
反タオバオ連合が追悼ホールを設置、ジャック・マーが幹部に安全に注意するよう呼び掛け本日、ウェブマスタ...
私は自分のウェブサイトを構築する際に、ずっとオリジナルの記事を書くことを主張してきました。毎日書く記...
ウェブサイトのキーワードを Baidu のホームページに載せる方法は、すべての SEO 担当者が知り...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス1. 背景著者は以前、あ...
raksmart香港データセンターのサーバーは現在、月額99ドルという低価格で販売中です。CN2+B...
みなさんこんにちは。私はハルビンバーチャルリアリティウェブサイトデザインです。最近、6月22日のBa...
オンラインプロモーションにおけるロングテールキーワードの役割は極めて重要であると言えます。オンライン...
今年5月、「モバイルゲームIPの年は本当だ」という記事の最後で、テキストゲームに注目していて将来性が...