OpenMetrics カーディナリティ
OpenMetrics カーディナリティ ドキュメントの目的
Prometheus 形式で公開されたメトリクスを保存し、簡単なスクリプトで指標ごとのカーディナリティを直接計算できます。
これにより、ユーザー環境でどの指標がどれほど多様なラベルの組み合わせを持つのか確認することができます。
カーディナリティとは?
カーディナリティ(Cardinality)とは、特定のメトリクス(metric)における 値(value)を除いたすべてのラベル(label)組み合わせのユニーク数 を意味します。
同じメトリクス名を持つデータでも、ラベル構成が同じであれば一つとして扱われます。
例
00:00 http_requests_total{url="/hello"} 値: 100
00:00 http_requests_total{url="/hello", name="whatap"} 値: 93
00:01 http_requests_total{url="/hello", name="whatap"} 値: 114
00:01 http_requests_total{url="/hello"} 値: 5
上記のデータは全部で4つですが、ラベル構成を基準にすると次のように2つとして計算されます。
url="/hello"→ 1個url="/hello", name="whatap"→ 1個
したがって、このメトリクスのカーディナリティは 2 です。
カーディナリティの確認方法
ユーザー環境で実際に収集されるメトリクスのカーディナリティを直接確認す るには、Prometheus 形式で公開されたメトリクスを基に計算する必要があります。
Step 1. Prometheus メトリクスファイル抽出
Prometheus 形式でメトリクスを公開するエンドポイント(/metrics)を呼び出し、テキストファイルとして保存します。
9100 ポートは Prometheus Node Exporter の例であり、環境に応じたエンドポイントアドレスを入力してください。
curl -s http://localhost:9100/metrics > metrics.txt