2017-12-25 6 views
1

私はプロメテウスを使って30秒ごとにいくつかのメトリックを収集しています。記憶領域を節約するため、これらの生のメトリックをより粗いものに集約するための録音ルールもいくつか作成しました(cpu_time:avg1hなど)。PrometheusのCrontabスタイルの録音ルール

問題は、毎時間の開始時に集計が行われるようにすることです。プロメテウスでは可能ですか?

答えて

0

Prometheusにはこのような機能はありませんが、フェーズがランダムなルール評価の間隔を制御できます。

一般的には、健全性のためにスクレープ終了評価間隔を同じにすることをお勧めします。したがって、30秒の評価間隔を使用することをお勧めします。プロメテウスはかなり良い圧縮率を持っているので、かなり安くなるでしょう。

+0

返信いただきありがとうございます!圧縮はストレージスペースの問題を解決するかもしれませんが、「過去1ヶ月間に「cpu_time:avg1h」を与えるが、各時間には1つのデータポイントだけを選択する」というようなクエリを効率的に実行する方法がもう1つあります。クライアントのリソースが多すぎるため、数万点のデータポイントを送信して表示することは望ましくありません。 Prometheusはこの種のクエリに最適化されていますか? – fengye87

+1

query_rangeエンドポイントの 'step'パラメータを使用すると、クエリの評価頻度を制御できます。実際には11kステップ以上を一度に返すことを防ぐためのフェールセーフがあります。 –

+0

プロメテウスのソースコードを掘り下げた後、プロメテウスにそのような機能を追加するのは難しい作業ではないようです。私は 'Group.offset()'関数(rules/manager.go:266)の結果にいくらかの相違をもたらす相違を明示的に制御するルールグループに 'base'オプションフィールドを追加することを考えていますか? – fengye87