Prometheus的容量規劃(轉)
Prometheus的容量規劃
存儲需求主要取決于以下幾個因素:
- 指標數量(Time Series Count):你正在監控的總指標數量。
- 樣本速率(Sample Rate):每個指標每秒生成的樣本數。
- 保留時間(Retention Time):數據需要保留的時間長度。
- 樣本大小(Sample Size):每個樣本在磁盤上占用的空間,通常為 1.2 字節/樣本(經過壓縮)。
存儲需求計算公式
存儲需求(字節) = 指標數量 × 樣本速率 × 保留時間(秒) × 樣本大小(字節)
詳細說明
- 指標數量:通常是
Prometheus中活躍的時間序列數。prometheus_tsdb_head_series:計算出活躍樣本數
- 樣本速率:一般情況下,每個指標每
15秒收集一個樣本(這是Prometheus的默認抓取間隔),因此樣本速率為1/15秒,即0.067樣本/秒。活躍樣本數 / 15s = 樣本速率
- 保留時間:可以根據需要設置,一般為
15天。 - 樣本大?。航涍^
Prometheus的壓縮后,每個樣本大約占用1.2字節。
示例計算
假設你有 10,000 個指標,每個指標每 15 秒抓取一個樣本,數據保留 15 天。
- 樣本速率:每個指標每
15秒抓取一次,即1/15樣本/秒。 - 保留時間:
15天 =15 * 24 * 60 * 60秒。 - 樣本大?。好總€樣本占用
1.2字節。
大約 10.4 GB
公式解釋
- 指標數量:
10,000表示你有10,000個指標。 - 樣本速率:
0.067表示每個指標每秒的采樣率。 - 保留時間:
1,296,000秒是15天的總秒數。 - 樣本大小:
1.2字節是每個樣本的壓縮大小。
數據獲取方式
每秒抓取的樣本數
sum(rate(prometheus_tsdb_head_samples_appended_total[1m])) by (job)
正在監控的指標數
count({__name__=~".+"}) by (job)
壓縮后的樣本大小
rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1h]) / rate(prometheus_tsdb_compaction_chunk_samples_sum[1h])
-
計算過去 1 小時內,
prometheus_tsdb_compaction_chunk_size_bytes_sum壓縮過程中每秒處理的塊大小的增量。 -
計算過去 1 小時內,
prometheus_tsdb_compaction_chunk_samples_sum壓縮過程中每秒處理的樣本數量的增量。 -
將兩者相除,得到每個樣本的平均大小。
自身容量監控指標
-
prometheus_tsdb_storage_blocks_bytes:表示當前塊存儲的大小。 -
prometheus_tsdb_head_samples_appended_total:表示已追加的樣本總數。 -
prometheus_tsdb_wal_storage_size_bytes:表示 WAL 存儲的大小。

浙公網安備 33010602011771號