monitoring - 高标签基数但低度量/标签计数和不频繁采样是 Prometheus 可接受的用例吗?
问题描述
我有一个监控用例,我不完全确定它是否适合 Prometheus,我想在深入研究之前征求意见。
我要存储的数量:
只有 1 个指标。该指标有 1 个标签,其中包含 1,000,000 到 2,000,000 个不同的值。这些值是仪表(但如果它们是计数器,它会有所不同吗?)采样率为每 5 分钟一次。保留数据 180 天。
如果我有 100 万个不同的标签值,估计的存储大小:
(根据 Prometheus 文档中的公式:retention_time_seconds * ingested_samples_per_second * bytes_per_sample)
(24*60)/5=288 5-minute intervals in a day.
(180*288) * (1,000,000) * 2 = 103,680,000,000 ~= 100GB
samples/label-value label-value-count bytes/sample
所以我假设需要 100-200GB。
这个估计正确吗?
我在多个地方阅读了有关避免高基数标签的信息,我想问一下。 考虑到我一次只看一个时间序列是高基数标签的问题吗?或者有大量的时间序列?由于每个标签值都会产生另一个时间序列?我还在多个地方读到,Prometheus 可以一次处理数百万个时间序列,所以即使我有 1 个具有一百万个不同值的标签,就时间序列计数而言,我应该没问题,我是否需要担心在这种情况下具有高基数的标签?我知道这取决于服务器的强度,但假设平均容量,我想知道 Prometheus 的实现是否在有效处理这种情况下存在问题。
而且,如果这是时间序列计数的问题,我是否正确假设它不会在以下选项之间产生显着差异?
- 1 个具有 1,000,000 个不同标签值的标签的指标。
- 10 个指标,每个指标有 1 个包含 100,000 个不同标签值的标签。
- X 度量,每个度量都有 1 个标签,其中包含 Y 个不同的标签值。其中 X * Y = 1,000,000
谢谢您的帮助!
解决方案
请注意,Victoria Metrics 是一个易于为 Prometheus 配置的后端,它将显着降低存储需求。
推荐阅读
- cloud - 无法将服务从 maven 部署到 Google App Engine 柔性环境
- r - 如何根据逻辑列的条件从数字列转发填充
- excel - 您可以在 Excel 的一列中汇总所有不同的值吗?
- c# - WPF中的剪贴板setImage错误CLIPBRD_E_CANT_OPEN
- regex - Vim yank/copy all multi-line patterns in file
- google-cloud-platform - Terraform GCP 启动脚本本地文件而不是内联文件
- python-3.x - Tensorflow 分类器。评估无限期运行?
- django - 姜戈。xml标签中的Rest框架连字符
- linux - how to fix 'SYSCALL execve': ls complains about a NULL argv[0]
- c++ - 通过函数指针传递参数时获取垃圾数据"