Prometheus:PromQL 减法,相同的标签,不同的值
Posted
技术标签:
【中文标题】Prometheus:PromQL 减法,相同的标签,不同的值【英文标题】:Prometheus: PromQL Subtraction, same label, different value 【发布时间】:2021-07-27 20:30:06 【问题描述】:我正在使用 Hystrix、千分尺、普罗米修斯。
以下查询有效,但我需要修改它,我不知道如何:
sum by(group, key) (increase(hystrix_execution_totalevent="exception_thrown"[1m])) / sum by(group, key) (increase(hystrix_execution_terminal_total[1m])) * 100 >= 5
基本上exception_thrown
是Hystrix 发出的一个事件,但Hystrix 也发出另一个指标bad_request
表示客户端错误(400)。为了准确衡量上游服务器错误,我需要减去两个具有相同标签但值不同的指标,然后得到每分钟的警报率
hystrix_execution_totaljob="auth",key="authenticate",event="exception_thrown" - hystrix_execution_totaljob="auth",key="authenticate",event="bad_request"
如果有可能实现这一目标,有什么想法吗?
【问题讨论】:
【参考方案1】:一旦有人指出标签值之间存在超过 1 个差异,忽略就会起作用。
不仅event标签值不同,terminal标签值也有相应的不同。对于 exception_thrown,terminal=true,对于 bad_request,terminal=false[!
sum by(group, key) (increase(hystrix_execution_totaljob="auth",key="authenticate",event="exception_thrown"[10m]) - ignoring(event, terminal) increase(hystrix_execution_totaljob="auth",key="authenticate",event="bad_request"[10m])) / sum by(group, key) (increase(hystrix_execution_terminal_total[10m])) * 100 >= 5
【讨论】:
以上是关于Prometheus:PromQL 减法,相同的标签,不同的值的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#Prometheus 之 PromQL 介绍
PromQL/prometheus 查询 label_replace() 多个
在 Prometheus/PromQL 中合并/加入两个指标