指標の比率について

このドキュメントは、指標データの比率をグラフ化またはモニタリングするための最適なアプローチを選択するのに役立ちます。また、例へのリンク、比率を計算できるタイミング、2 つの異なる指標の比率をグラフ化する際に発生する異常についても説明します。これらの異常は、サンプリング レートまたはアライメント パラメータの違いによるものです。

比率を使用すると、指標データを別の(より役立つ可能性のある)形式に変換できます。たとえば、レスポンス コードごとに HTTP レスポンスの数をカウントする指標タイプについて考えてみます。指標データにはエラーの数が表示されますが、失敗したリクエストの割合は表示されません。ただし、パフォーマンス要件は「エラー率は 0.1% 未満である必要があります」のように、多くの場合、割合で指定されます。指標データを使用してエラー率を特定するには、失敗したリクエストとリクエストの合計数の比率を計算します。

ベスト プラクティス

指標データの比率をモニタリングするかグラフ化するには、PromQL を使用することをおすすめします。PromQL は、Cloud Monitoring API と Google Cloud コンソールで使用できます。Google Cloud コンソールには、クエリ、エラー検出など、有効な PromQL クエリを作成するためのサポートを提供するコードエディタが含まれています。

PromQL に慣れていない場合に指標の比率をモニタリングするアラート ポリシーを作成するには、Cloud Monitoring API を使用して時系列フィルタを含めます。例については、指標の比率をご覧ください。

PromQL に慣れていない場合に指標データの比率をグラフ化するには、Google Cloud コンソールを使用し、メニュー ドリブンのインターフェースを使用することをおすすめします。 詳しい手順については、指標の比率をグラフ化するカスタム ダッシュボードにグラフとテーブルを追加するをご覧ください。

比率の制限

比率を構成する場合、次の制限が適用されます。

  • 集計後、分母となる時系列のラベルは、分子となる時系列のラベルと同じか、そのサブセットになります。

    分子と分母の時系列が集計後に同じラベルを持つように、集計オプションを選択することをおすすめします。

    分子時系列に method ラベル、quota_metric ラベル、project_id ラベルがある構成について考えます。分母の時系列には limit_namequota_metricproject_id の各ラベルがあります。分母のグループ化での有効な選択肢は、分子の選択によって異なります。

    • method ラベルでグループ化された分子: 分母の時系列を 1 つの時系列に結合します。これは、分母時系列のラベルが分子時系列のラベルのサブセットになる唯一のグループ化はです。
    • 分子が quota_metric ラベルでグループ化されている場合: 分母をそのラベルでグループ化するか、分母のすべての時系列を 1 つの時系列に結合します。
    • 分子が quota_metric ラベルと project_id ラベルでグループ化されている場合: 分母を両方のラベルでグループ化するか、1 つのラベルでグループ化するか、分母の時系列を 1 つの時系列に結合します。

    分子時系列には limit_name ラベルが存在しないため、有効な分母集計オプションではこのラベルはグループ化された時系列から常に除外されます。

  • Google Cloud コンソールを使用してグラフを構成する場合は、分子と分母のアライメント期間が同じである必要があります。ただし、Cloud Monitoring API を使用する場合は、これらのフィールドが異なる可能性があります。

    グラフの作成に使用するツールにかかわらず、分子と分母に同じ調整期間を使用することをおすすめします。

  • 分子と分母は同じ値の型である必要があります。たとえば、分子が DOUBLE 型の場合、分母は DOUBLE 型でなければなりません。

    比率では、分子と分母の指標は DOUBLE または INT64 の値の型である必要があります。

  • 分子と分母のアライメントされた時系列は、指標の種類が同じである必要があります。2 つの指標の種類が異なる場合は、配置指定子を使用して同じ種類に変換する必要があります。

    分子に対して DELTA 指標が選択され、分母に対して GAUGE 指標が選択されている構成について考えてみましょう。この状況では、レート配置指定子 ALIGN_RATE を使用して、DELTA 指標を GAUGE 指標に変換します。例については、1 つの上限に対するレートに基づく割り当ての使用量についての比率アラート ポリシーをご覧ください。

  • PromQL で定義されていない比率の場合、分子と分母のモニタリング対象リソースタイプは同じである必要があります。

    たとえば、分子の指標のリソースが Compute Engine インスタンスの場合、分母の指標のリソースも Compute Engine インスタンスである必要があります。

サンプリングとアライメントの不一致による異常

一般に、ラベル値を使用して、単一の指標タイプに対して収集された時系列に基づいて比率を計算することが最適です。2 つの異なる指標タイプで計算された比率は、サンプリング期間とアライメント ウィンドウが異なるため、異常が発生する可能性があります。

たとえば、RPC の合計数と RPC のエラー数の 2 つの異なる指標タイプがあり、RPC の合計数に対する RPC のエラー数の割合を計算するとします。失敗した RPC は、両方の指標タイプの時系列でカウントされます。そのため、時系列をアライメントすると、失敗した RPC が両方の時系列の同じアライメント間隔に表示されない場合があります。この差は、次のような原因で発生することがあります。

  • 同じイベントを記録する 2 つの異なる時系列があるため、コレクションを実装する 2 つの基になるカウンタ値があり、それらはアトミックに更新されません。
  • サンプリング レートは異なる場合があります。時系列が共通の期間にアラインメントされると、単一のイベントのカウントが、異なる指標の時系列の隣接するアラインメント間隔に表示される場合があります。

対応するアライメント間隔の値の数の差は、1/0 や 2/1 などの意味のない error/total 比率値になる場合があります。

大きな数値の比率の場合、意味のない値になる可能性は低くなります。 サンプリング期間よりも長いアライメント ウィンドウを使用するか、特定のラベルのデータをグループ化すれば、集計で大きな数値を取得できます。これらの手法は、特定の間隔でのポイント数のわずかな違いによる影響を最小限に抑えます。つまり、間隔内の予想されるポイント数が 3 の場合、予想される数が 300 の場合よりも、2 ポイントの不一致による影響が大きくなります。

組み込みの指標タイプを使用している場合は、指標タイプ全体の比率を計算して、必要な値を取得せざるを得ない場合があります。

2 つの異なる指標で同じもの(エラー ステータスを返す RPC など)をカウントする可能性のあるカスタム指標を設計している場合は、代わりに、各カウントを 1 回だけ含む単一の指標を検討してください。たとえば、RPC をカウントしていて、すべての RPC に対する失敗した RPC の比率を追跡するとします。RPC をカウントする単一の指標タイプを作成し、ラベルを使用して「OK」ステータスを含む呼び出しのステータスを記録します。次に、その場合の単一のカウンタを更新することにより、各ステータス値、エラーまたは「OK」が記録されます。

次のステップ