PromSQL实用查询语句总结(一直更新)

一、过滤掉某一个接口或者某一个错误码

sum(http_request_total{api!="example",code!="500"}offset 2m)

二、过滤掉某一个接口的某一个错误码

sum(http_request_total{}offset 2m unless on(api,code){api="example",code="500"})

三、定义一个流量暴涨或者暴跌的告警规则

sum by(code)(http_request_total{code="200"} offset 3m) >400 and abs(sum by(code) (delta(http_request_total{code="200"}[2m] offset 2m))) / sum by (code)(http_request_total{code="200"} offset 3m) >0.5

其中指标http_request_total表示的是网关集群调用总量,标签code代表状态码。

这个表达式的意思可以分为以下几部分解释:

1. `sum by(code)(http_request_total{code="200"} offset 3m) >400` 表示在过去的三分钟内,状态码为 200 的 http 请求总量按照状态码进行汇总,并且这个总量大于 400。

2. `delta(http_request_total{code="200"}[2m] offset 2m)` 表示在过去的两分钟内,状态码为 200 的 http 请求总量的变化量。

3. `sum by(code) (delta(http_request_total{code="200"}[2m] offset 2m))` 表示在过去的两分钟内,状态码为 200 的 http 请求总量的变化量按照状态码进行汇总。

4. `abs(sum by(code) (delta(http_request_total{code="200"}[2m] offset 2m))) / sum by (code)(http_request_total{code="200"} offset 3m) >0.5` 表示过去两分钟内状态码为 200 的 http 请求总量的变化量与过去三分钟内状态码为 200 的 http 请求总量的比值大于 0.5,并且变化量和总量都按照状态码进行汇总。

综合起来,这个表达式的意思是:如果在过去的三分钟内,状态码为 200 的 http 请求总量大于 400,同时过去两分钟内状态码为 200 的 http 请求总量的变化量与过去三分钟内状态码为 200 的 http 请求总量的比值大于 0.5,就认为这个网关集群存在异常情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN-FuWei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值