我们使用 Prometheus 来抓取指标并将其保留 8 小时(对于更长时间,我们使用 Victoria Metrics)。我试图找出,对于当前的系列数量,Prometheus 应该有多少 MEM。我发现Prometheus 2.x 需要多少 RAM 来进行基数和摄取?用计算器。从这篇文章中,我有一些不清楚的地方:
max_over_time(prometheus_tsdb_head_series[1d])查询的结果。就我而言,有多个结果,所以我用 求和sum(max_over_time(prometheus_tsdb_head_series[1d]))。这种做法对吗?{a="123", b="456"}算作2。{a="123", b="456"}和{a="123", b="abc"}等于 2 个 uniq 标签对{ "__name__": "up", "app_version": "0509b54", "instance": "1", "job": "event-metric-exporterd", "stack_version": "MR" }。我删除了空格和{, }。所以最终的字符串是"__name__":"up","app_version":"0509b54","instance":"1","job":"event-metric-exporterd","stack_version":"MR". 然后,我对其进行编码并utf-8获取字符串长度,在本例中为 106。我对每个 uniq 标签执行此过程并计算平均值。这是正确的吗?rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1d])/rate(prometheus_tsdb_compaction_chunk_samples_sum[1d]),在我的例子中返回多个系列。之所以需要,是max()因为这是最坏的情况。计算器计算:
我对基数内存和摄取内存的理解正确吗?我的计算过程正确吗?有没有更好的方法来估计普罗米修斯的内存?
在 docker 中使用 Prometheus prometheus:v2.29.1。
| 归档时间: |
|
| 查看次数: |
2520 次 |
| 最近记录: |