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

Grafana:如何修复或隐藏DashboardQueryRunner Failed等UI错误通知

Kubernetes集群中Grafana随机弹出DashboardQueryRunner Failed错误的排查与解决

问题背景

在Ubuntu服务器的Kubernetes集群上部署了Grafana 10.0.2(此前版本也存在该问题),通过Prometheus监控Kubernetes资源。仪表盘核心功能正常,但切换或刷新时会随机弹出红色错误框,提示DashboardQueryRunner Failed、Load Failed等信息。

可能的原因

  • 查询上下文被取消:切换/刷新仪表盘时,未完成的查询会被Grafana主动终止,触发context canceled错误,进而被标记为失败通知。这是Grafana的默认行为,但部分场景下会误触发提示。
  • Prometheus查询性能不足:当仪表盘包含大量并发查询,或查询语句过于复杂、时间范围过大时,Prometheus响应超时,导致查询失败。
  • 网络或连通性问题:Kubernetes集群内Grafana与Prometheus之间存在偶尔的网络延迟、中断,或DNS解析、网络策略限制导致请求失败。
  • Grafana配置不合理:查询超时时间过短、并发查询限制过低,导致正常查询被中断并触发错误提示。

修复方案

1. 优化Prometheus查询

  • 简化复杂查询,减少不必要的标签过滤或聚合操作;
  • 为查询设置合理的时间范围,避免一次性拉取过大的数据量;
  • 配置Prometheus记录规则(Recording Rules),将频繁使用的聚合查询提前计算并存储,降低实时查询压力。

2. 调整Grafana查询超时配置

  • 修改grafana.ini中的全局查询超时:
    [queries]
    query_timeout = 30s  # 根据实际情况延长,默认可能为10s或15s
    
  • 在Prometheus数据源配置页面,单独调整该数据源的查询超时时间(进入数据源→设置→超时)。

3. 优化Prometheus性能

  • 扩容Prometheus实例的CPU、内存资源,或启用Thanos/Mimir等远程存储方案,分担存储与查询负载;
  • 调整Prometheus的数据保留周期,清理过期数据,减少存储压力。

4. 调整Grafana并发查询限制

  • 在grafana.ini中修改并发查询参数:
    [dashboard]
    max_concurrent_shard_queries = 20  # 根据集群资源调整,避免并发过高导致请求中断
    

5. 排查集群网络问题

  • 检查Grafana Pod与Prometheus Service的连通性,执行kubectl exec -it <grafana-pod-name> -- curl <prometheus-service-url>验证;
  • 查看Grafana和Prometheus的Pod日志,确认是否存在网络相关错误(如connection refused、timeout)。

禁用错误通知的临时方案

若上述修复无效,可临时禁用这类红色通知(注意:会掩盖真实问题,需谨慎使用):

1. 通过配置文件全局禁用

修改grafana.ini:

[notifications]
disable_failed_queries_notifications = true

重启Grafana Pod生效。

2. 仪表盘级关闭通知

进入目标仪表盘→设置→通知,关闭“查询失败时显示通知”选项。

3. 自定义CSS隐藏错误框

  • 进入Grafana后台→Admin→设置→外观,开启“自定义CSS”;
  • 添加以下代码:
    div.alert-error {
        display: none !important;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:26:02