PrometheusでError executing query: exceeded maximum resolution of 11,000 points per timeseries.

Prometheusにはクエリを投げてグラフ表示する機能がある。

Res(s)は表示するデータの解像度を指定するパラメータであり、デフォルトは空欄で勝手にグラフを調整してくれる。

全データをグラフに表示してみたくなり、Resに1を入力したところ表題のエラー。

文字通り解釈すると、一度に表示できるデータ数は11,000件までという制限があるみたい。

上限数を変えられないか調べてみる。

prometheus/web/api/v1/api.go at cf1bea344a3c390a90c35ea8764c4a468b345d5e · prometheus/prometheus
The Prometheus monitoring system and time series database. - prometheus/prometheus
// For safety, limit the number of returned points per timeseries.
	// This is sufficient for 60s resolution for a week or 1h resolution for a year.
	if end.Sub(start)/step > 11000 {
		err := errors.New("exceeded maximum resolution of 11,000 points per timeseries. Try decreasing the query resolution (?step=XX)")
		return apiFuncResult{nil, &apiError{errorBadData, err}, nil, nil}
	}

どうやら11,000という値はハードコーディングされており、config等で変えるのは出来ない様子。

ソースをクローンして値を書き換えてビルドし直せば突破出来るのかもしれないが、For safety…というコメントが書かれているので辞めておいた方が良さそう。

上限値を変更するかわりに、グラフの表示させるデータ数を11000以下になるように工夫する。

今回のケースではResを100にすることで、空白の自動調整よりも多くのデータを表示することが出来た。

コメント

タイトルとURLをコピーしました