无意中看到一个可以查询当前prometheus有用到哪些指标的工具,感觉对大的prometheus集群应该蛮有用的,试试能不能降低一些prometheus负责吧。
mimirtool
Mimirtool 是一个 CLI 工具,可用于涉及 Grafana Mimir 或 Grafana Cloud Metrics 的 Prometheus 兼容任务的各种操作。
curl -fLo mimirtool https://github.com/grafana/mimir/releases/latest/download/mimirtool-linux-amd64
mimirtool analyze grafana --address=http://localhost:3000 --key="${GRAFANA_API_TOKEN}"
grafana的apikey可以在grafana页面的设置里获取,生成一个admin的key就好啦,运行完上面的命令后就可以得到metrics-in-grafana.json
文件,里面就是grafana用到了哪些指标。
./mimirtool analyze rule-file my-prometheus-rule.yaml
my-prometheus-rule.yaml文件是prometheus的rules里的规则集合,把所有的规则都汇总到了这个文件里,要注意格式正确。运行命令后就会生成metrics-in-ruler.json
文件,里面是prometheus的规则用到了哪些指标。
./mimirtool analyze prometheus --address=http://localhost:9090
运行后会生成prometheus-metrics.json
文件,这个就是我们最终要的文件了,里面包含了哪些指标在用,哪些指标没有在用,然后就可以根据这些数据,修改prometheus的采集规则,筛选掉一些不用的指标。
其实还是要结合prometheus的TSDB里的TOP指标来分析哪些指标是很大且无用的,并不是一味的drop指标就好,有些指标可能只是单纯的没有加相关的告警规则,例如ingress_control相关的指标和etcd相关的指标,还是需要结合告警来判断!