You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana Loki中使用二元运算符并统计金丝雀实例错误日志数

金丝雀实例日志错误计数PromQL实现

需求说明

要制作一个面板展示金丝雀实例的日志错误计数,判断规则为:当某个stack标签对应的实例数量为1时,该实例即为金丝雀实例,需仅统计这类实例中包含Unable to record关键词的日志错误数。

修正后的PromQL表达式

sum by(stack) (
  count_over_time(
    {component=~"stack-blue.*", cloud=~"${cloud}", environment=~"${environment}", location=~"${location}"} |= "Unable to record" [$__interval]
  )
)
* on(stack) group_left()
count by(stack) (
  count_over_time(
    {component=~"stack-blue.*", cloud=~"${cloud}", environment=~"${environment}", location=~"${location}"} [$__interval]
  )
) == 1

表达式说明

  • 第一部分:按stack标签分组,统计每个分组内包含Unable to record关键词的日志条目数
  • 第二部分:先按stack统计每个分组的实例数量(通过count by(stack)计算每个stack下的主机数),再筛选出实例数等于1的分组
  • * on(stack) group_left():将两部分按stack标签关联,仅保留实例数为1的stack的错误计数,其他stack的结果会被置为0,可在面板设置中过滤掉数值为0的条目

原表达式问题

原表达式使用and逻辑不符合PromQL语法逻辑,and在PromQL中是取两个时序集合的交集,无法实现“仅筛选实例数为1的stack”的条件过滤,必须通过标签关联的方式实现条件匹配。

内容的提问来源于stack exchange,提问作者Roopchand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:06:22