prometheus -- PromQL(sum不同metric的值)
问题
假设有两个不同的metric,有相同的tag,需要将它们的值进行sum。
metricA:
metricA{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node1"}0
metricA{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node2"}0
metricA{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node3"}0
【prometheus -- PromQL(sum不同metric的值)】metricB:
metricB{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node2"}33
metricB{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node3"}44
答案 PromQL求和:
sum by (node) ({__name__=~"metricA|metricB"})
结果:
{node="node1"}0
{node="node2"}33
{node="node3"}44
原理 PromQL中使用了__name__标签,实际上它也是tag的一部分,比如metricB:
metricB{__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node2"}33//该序列值等价于
{__name__="metricB",__type__="gauge",instance="127.0.0.1:9999",job="my-test",node="node2"} 33
这样metricA和metricB统一变成拥有相同tag的metric,可以对它们进行sum等操作。
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 29th|29th May Learning summary of Blockchain
- 6月|6月 summer is coming
- prometheus|prometheus 常用指标
- LeetCode|LeetCode 437. Path Sum III
- 基于 Prometheus 的边缘计算监控实践
- Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩
- zabbix监控MogDB之采集prometheus数据
- 技术分享 | Prometheus+Grafana监控MySQL浅析
- RocketMQ学习三-Consumer临时