【メトリクスカーディナリティ】

メトリクスカーディナリティ とは?

最終更新:
💡 ラベルの組み合わせが、監視する時系列の数を決める

メトリクス監視で扱う、異なる時系列の数。Prometheusではメトリクス名とラベルの値の組み合わせで時系列を区別し、組み合わせが増えるほど保存や処理の負担が増える。

📌 このページのポイント
ラベルの組み合わせで時系列を区別statusだけstatus+user_id2004045003種類 → 3本3種類 × 10万種類全組なら30万本同じメトリクス、ほかのラベルは固定実際に観測した組み合わせを数える
一つのメトリクスで比較した仮の例です。右はstatusの3種類とuser_idの10万種類の全組み合わせを観測した場合の数で、利用者数だけで決まる値ではありません。線は別々の時系列を表します。
ひよこ ひよこ
メトリクスカーディナリティって何なの?
ペンギン先生 ペンギン先生
異なる時系列が何本あるかを表すよ。Prometheusでは名前とラベルの組で区別する。一つのメトリクスで、ほかのラベルが同じなら、statusの200・404・500という3種類を観測すると3本になるんだ
ひよこ ひよこ
ラベルが二つあると?
ペンギン先生 ペンギン先生
例えばstatusが3種類、methodがGETとPOSTの2種類なら、全組み合わせを観測すると3×2で6本だよ。実際に出てきた組だけを数えるので、まだ観測していない組まで必ず作られるわけではないんだ
ひよこ ひよこ
組み合わせが増えると何が困るの?
ペンギン先生 ペンギン先生
時系列ごとにデータを保存して処理するため、メモリーや保存容量、クエリ処理の負担が増えやすいよ。どの程度で問題になるかは、収集頻度や保存期間、監視システムの構成にもよるんだ
ひよこ ひよこ
増えやすいラベルってある?
ペンギン先生 ペンギン先生
ユーザーIDやリクエストIDのように、多くの値が次々に現れるものだね。数学的に無限でなくても、監視で扱うには多すぎることがある。利用者が10万人いるだけで10万本になるのではなく、実際に記録するラベルの組で決まるんだ
ひよこ ひよこ
どうすれば抑えられるの?
ペンギン先生 ペンギン先生
目的に必要なラベルを選び、値の種類数も見積もるよ。例えば個別IDを付けず、ステータスを2xx・4xx・5xxなどにまとめる。ただし詳細が失われるので、何を調べたいかに合わせるんだ。料金の計算方法も監視サービスや契約ごとに確認する必要があるね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「メトリクスカーディナリティ」って出てきたら「メトリクスの異なる時系列が何本あるか」と思えばだいたいOK!
📖 おまけ:英語の意味
「Metrics Cardinality」 = メトリクスの基数
💬 Cardinalityは要素の数を表す言葉だよ。メトリクス名やラベルによって区別される時系列が、何種類あるかを考えるんだ

参考資料

← 用語集にもどる