コンテンツに移動
DevOps & SRE

トレース エグザンプラが Managed Service for Prometheus で利用可能に

2023年7月5日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 6 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

クロスシグナル相関(システムの健全性の全体像を把握するために、指標、ログ、トレースを連携させること)は、オブザーバビリティの理想的な形としてよく引用されます。ただし、これらのシグナルはデータモデルが根本的に異なるため、それぞれ別個の分離されたバックエンドに存在するのが一般的です。異なるオブザーバビリティ システム間のポインタやリンクが最初からあるわけではないため、シグナルタイプの切り替えには手間がかかる場合があります。

トレース エグザンプラは、指標とトレース間のクロスシグナル相関を提供します。これにより、異常なパフォーマンスの問題が発生したアプリケーションの個々のユーザーを特定して、詳細を確認することができます。トレース情報を指標データとともに保存すると、指標値の突然の変化に関連するトレースを迅速に特定できます。指標データが記録されたときに、アプリケーションで何が起こったかを特定するために、タイムスタンプを使用してトレース情報と指標データを手動で相互参照する必要がありません。

このクロスシグナル機能をさらに簡単に導入できるようにするため、Managed Service for PrometheusPrometheus エグザンプラがネイティブにサポートされるようになりました。

高レイテンシ ユーザー ジャーニーの全体像を把握する

Google SRE ブックの分散システムのモニタリングに関するセクションで説明されているように、平均レイテンシではなくテール レイテンシを測定した方が、はるかに有益な情報が得られます。SRE ブックに次のように記載されているとおり、レイテンシは往々にして非常に不均一です。

「平均レイテンシが 100 ミリ秒のウェブサービスを 1 秒あたり 1,000 リクエストで実行する場合、リクエストの 1% に軽く 5 秒かかる可能性があります。ユーザーがページを表示するためにこのような複数のウェブサービスに依存している場合は、1 つのバックエンドの 99 パーセンタイル(p99)がフロントエンドの応答時間の中央値になる可能性があります。」

平均レイテンシ指標の代わりにレイテンシのヒストグラム(分布とも呼ばれる)を使用することで、これらの高レイテンシ イベントを確認し、p99.9(99.9 パーセンタイル)のレイテンシが p99、p90、またはそれより悪化する前に措置を講じることができます。

エグザンプラは、指標に基づいてレイテンシの問題を認識してから、トレースによって根本原因分析を実施するまでの間の欠落したリンクを提供します。ヒストグラムにトレース エグザンプラを追加すると、レイテンシの分布を示すチャートから、p99.9 のレイテンシを生成したトレース エグザンプラに切り替えることができます。その後、トレースを検査してどの呼び出しに最も時間がかかったかを確認することで、より多くのユーザーに影響が及ぶ前に、進行中のレイテンシの問題を特定し、解決することができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/gmp-exemplars-grafana.max-1700x1700.png
一連のヒストグラム バケットと、関連するエグザンプラの Grafana チャートを示すスクリーンショット(エグザンプラのうちの一つが展開された状態)。

p99.9 のレイテンシに関連するトレースと p50 のレイテンシに関連するトレースの違いを確認することで、どのフローに問題があるかをさらに詳しく調査できます。

Managed Service for Prometheus のエグザンプラは、24 か月間クエリに利用できます。この保持期間とは対照的に、アップストリームの Prometheus では、エグザンプラはデータがメモリ内にある期間(通常は 14 日未満)しか保持されません。

Prometheus エグザンプラは、Cloud Trace とサードパーティ製トレースツール(Grafana Tempo など)の両方で動作し、Grafana の PromQL または Cloud Monitoring のクエリビルダーを使用してクエリできます。Cloud Monitoring の PromQL を使用したエグザンプラをクエリする機能は近日中に提供される予定です。

使ってみる

エグザンプラは、Managed Service for Prometheus を有効にしてバージョン 1.25 以降を実行しているすべての Google Kubernetes Engine(GKE)クラスタですでに利用可能です。また、セルフデプロイ コレクションを使用する場合、または OpenTelemetry Collector を使用する場合にも有効にすることができます。

指標をトレースと相関させるには、それらを同時に計測する必要があります。これを行う最も一般的な方法は OpenTelemetry SDK を使用することですが、ネイティブの Prometheus JavaGoPython ライブラリもあります。

詳細と手順については、Managed Service for Prometheus ドキュメントの「Prometheus のエグザンプラを使用する」セクションをご確認ください。


- シニア プロダクト マネージャー Lee Yanco
投稿先