Prometheus query matching 规则

规则:
对于metrics1 和 metrics2,
为每一个metrics1的值, 找对应的在metrics2中匹配的值

One-to-one 1对1

method_code:http_errors:rate5m{method="get", code="500"}  24
method_code:http_errors:rate5m{method="get", code="404"}  30
method_code:http_errors:rate5m{method="put", code="501"}  3
method_code:http_errors:rate5m{method="post", code="500"} 6
method_code:http_errors:rate5m{method="post", code="404"} 21

method:http_requests:rate5m{method="get"}  600
method:http_requests:rate5m{method="del"}  34
method:http_requests:rate5m{method="post"} 120

对于查询

method_code:http_errors:rate5m{code="500"} / ignoring(code) method:http_requests:rate5m

忽略code值的不同,然后需要其他label意义对应
结果是

{method="get"}  0.04            //  24 / 600
{method="post"} 0.05            //   6 / 120

其实 method=“get” 有两对,如果是1-1,只会有一个结果。

Many-to-one one-to-Many 多对1,1对多

对于上面的数据,使用如下查询

method_code:http_errors:rate5m / ignoring(code) group_left method:http_requests:rate5m

结果是

{method="get", code="500"}  0.04            //  24 / 600
{method="get", code="404"}  0.05            //  30 / 600
{method="post", code="500"} 0.05            //   6 / 120
{method="post", code="404"} 0.175           //  21 / 120

And 操作符

metrics1 and metrics2 的结果是 对左边的每一个数据判断,如果在右边的metrics里,那么输出这个数据。


https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值