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

如何解决Grafana中PromQL告警的「评估结果格式无效」错误?

解决Grafana告警标签重复错误并配置接口耗时告警

错误原因分析

你遇到的invalid format of evaluation results...错误,是因为查询返回了**标签集重复(空标签)**的时间序列。Grafana告警要求每个时间序列必须有唯一的标签组合来识别实例,而当前查询中的label_replace逻辑不仅多余(sum by (handler, le)已经确保结果按handler分组,必然带有handler标签),还可能在异常场景下生成无有效标签的重复序列,触发校验错误。

修正后的PromQL查询

如果你的接口都带有handler标签,直接使用以下查询即可,它会返回每个接口的99分位请求耗时,且每个结果都带有唯一的handler标签,满足告警的标签唯一性要求:

histogram_quantile(
    0.99,
    sum(
        rate(
            http_request_duration_seconds_bucket{
                env="dev",
                app_kubernetes_io_name=~".*app-name.*",
                handler=~"/api/v1/endpoint1|/api/v2/endpoint2"
            }[5m]
        )
    ) by (handler, le)
)

处理无handler标签的异常场景

如果存在部分请求没有handler标签的情况,可以调整查询,确保空标签被正确替换为unknown且不会产生重复:

label_replace(
    histogram_quantile(
        0.99,
        sum(
            rate(
                http_request_duration_seconds_bucket{
                    env="dev",
                    app_kubernetes_io_name=~".*app-name.*",
                    handler=~"/api/v1/endpoint1|/api/v2/endpoint2|^$"
                }[5m]
            )
        ) by (handler, le)
    ),
    "handler", "unknown", "handler", "^$"
)

这里用正则^$精准匹配空的handler值,同时在selector中包含空handler的情况,替换后handler="unknown"会作为唯一标签存在,避免重复。

配置Grafana告警步骤

  1. 创建告警规则,选择上述修正后的PromQL作为查询表达式
  2. 设置触发条件:A > 0.5(A为查询结果的默认变量名,代表99分位耗时)
  3. 配置评估参数:设置评估间隔(比如1分钟)和持续时间(比如5分钟,即连续5次评估都满足条件才触发告警)
  4. 配置通知渠道,指定告警接收方式(邮件、企业微信等)

这样配置后,当单个或多个接口的99分位请求耗时超过0.5秒并持续指定时间时,会分别触发对应接口的告警。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 03:14:54