ToB企服应用市场:ToB评测及商务社交产业平台
标题:
如何精简 Prometheus 的指标和存储占用
[打印本页]
作者:
道家人
时间:
2022-12-29 11:06
标题:
如何精简 Prometheus 的指标和存储占用
前言
随着 Prometheus 监控的组件、数量、指标越来越多,Prometheus 对计算性能的要求会越来越高,存储占用也会越来越多。
在这种情况下,要优化 Prometheus 性能, 优化存储占用. 第一时间想到的可能是各种 Prometheus 的兼容存储方案, 如 Thanos 或 VM、Mimir 等。但是实际上虽然集中存储、长期存储、存储降采样及存储压缩可以一定程度解决相关问题,但是治标不治本。
真正的本,还是在于指标量(series)过于庞大。
治本之法,应该是减少指标量。有 2 种办法:
Prometheus 性能调优 - 解决高基数问题
根据实际使用情况,只保留(keep)展示(Grafana Dashboards)和告警(prometheus rules)会用到的指标。
本次重点介绍第二种办法:如何根据实际的使用情况精简 Prometheus 的指标和存储占用?
思路
分析当前 Prometheus 中存储的所有的 metric name(指标项);
分析展示环节用到的所有 metric name,即 Grafana 的 Dashboards 用到的所有指标;
分析告警环节用到的所有 metric name,即 Prometheus Rule 配置中用到的所有指标;
(可选)分析诊断环境用到的所有 metric name,即经常在 Prometheus UI 上 query 的指标;
通过
relabel
在 metric_relabel_configs 或 write_relabel_configs 仅 keep 2-4 中的指标, 以此大幅减少 Prometheus 需要存储的指标量.
要具体实现这个思路, 可以通过 Grafana Labs 出品的
mimirtool
来搞定.
我这里有个前后的对比效果, 可供参考这样做效果有多惊人:
精简前: 270336 活动 series
精简后: 61055 活动 series
精简效果: 将近 5 倍的精简率!
Grafana Mimirtool
Grafana Mimir 是一款以对象存储为存储方式的 Prometheus 长期存储解决方案, 从 Cortex 演化而来. 官方号称支持亿级别的 series 写入存储和查询.
Grafana Mimirtool 是 Mimir 发布的一个实用工具, 可单独使用.
Grafana Mimirtool 支持从以下方面提取指标:
Grafana 实例中的Grafana Dashboards(通过 Grafana API)
Mimir 实例中的 Prometheus alerting 和 recording rules
Grafana Dashboards JSON文件
Prometheus记alerting 和 recording rules 的 YAML文件
然后,Grafana Mimirtool可以将这些提取的指标与Prometheus或Cloud Prometheus实例中的活动 series 进行比较,并输出一个 used 指标和 unused 指标的列表。
Prometheus 精简指标实战
假设
假定:
通过kube-prometheus-stack 安装 Prometheus
已安装 Grafana 且作为展示端
已配置相应的 告警规则
除此之外, 无其他需要额外保留的指标
前提
Grafana Mimirtool
从 releases 中找到 mimirtool 对应平台的版本下载即可使用;
已
创建 Grafana API token
Prometheus
已安装和配置.
第一步: 分析 Grafana Dashboards 用到的指标
通过 Grafana API
具体如下:
# 通过 Grafana API分析 Grafana 用到的指标
# 前提是现在 Grafana上创建 API Keys
mimirtool analyze grafana --address http://172.16.0.20:32651 --key=eyJrIjoiYjBWMGVoTHZTY3BnM3V5UzNVem9iWDBDSG5sdFRxRVoiLCJuIjoibWltaXJ0b29sIiwiaWQiOjF9
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4