Gauge メトリクスとは? 時点値の解説
gauge メトリクスは、時間とともに上下する値で、使用中のメモリ、温度、アクティブな接続数のように、何かの現在の状態を捉えます。
counter が「合計でいくつ」に答えるとすれば、gauge は「今どれだけ」に答えます。gauge は変動する値のスナップショットを取り、counter とは異なり、その瞬時の値こそがまさに関心の対象です。gauge は、上下する両方向に動くあらゆるものにとって自然なメトリクスです。
両方向に動く値
gauge は自由に増加または減少でき、両方向に変化する量を反映します。現在のメモリ使用量、キューの深さ、アクティブなセッション、利用可能なディスク容量は、すべて gauge です。その定義的な特徴は、このメトリクスが累積ではなく、現時点の測定値を表すという点です。
gauge と counter
counter との対比は、gauge を理解する最も明確な方法です。counter は増加するだけで、その rate を読みます。gauge は両方向に動き、その実際の値を読みます。処理されたリクエストの総数は counter であり、今この瞬間に処理中のリクエスト数は gauge です。
gauge のデータの使い方
gauge の値はそのまま意味を持つため、通常はそのままチャート化し、平均、合計、最大、最小といった演算でインスタンス間を集約します。gauge がしきい値を超えたとき、たとえばキューの深さが高すぎる、空きディスクが少なすぎるといったときにアラートを出すことがあります。生のレベルこそが問題を示すシグナルだからです。
サンプリングと解像度
gauge は一定間隔でサンプリングされるため、サンプル間の急激なスパイクは見逃される可能性があります。適切なスクレイプまたはサンプリングの頻度を選ぶことが重要です。粗すぎると短時間の飽和を見落とし、細かすぎるとストレージのコストがかさみます。適切な解像度は、測定対象の量がどれだけ速く動くかによって決まります。
CI/CD における gauge
パイプラインの gauge には、現在の build キューの長さ、ビジーな runner の数、処理中の並行 job などがあります。これらのレベルを観察すると、キャパシティの逼迫が明らかになります - 上がり続けるキューの深さは job が待たされていることを意味し、runner のキャパシティがボトルネックであるというシグナルです。
重要なポイント
- gauge は上下でき、現在の値を捉えます。
- counter は増加するだけですが、gauge は現時点の状態を表します。
- gauge の値は直接チャート化し、しきい値を設定します。
- キューの深さやビジーな runner のような CI の gauge は、キャパシティの逼迫を明らかにします。