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

Grafana仪表盘预配置报错:JSON正确仍提示标题不能为空

问题概述

在Kubernetes环境中使用Helm部署Grafana仪表盘时遇到问题:仪表盘JSON文件格式正确且已正确挂载,但Grafana无法加载该仪表盘,提示“Dashboard title cannot be empty”(仪表盘标题不能为空)。

环境信息

  • Kubernetes集群:K3S树莓派集群
  • Grafana部署方式:Helm
  • 命名空间:monitoring

问题详情

JSON文件格式正确且放置在指定目录,但Grafana无法识别该仪表盘JSON文件。

配置信息

grafana/templates/grafana-dashboards.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: grafana-dashboards
  namespace: monitoring
  labels:
    grafana_dashboard: "1"
data:
  pi-cluster-health.json: |-
    {{ .Files.Get "dashboards/pi-cluster-health.json" | indent 4 }}

grafana/dashboards/pi-cluster-health.json(注:原标注文件名有误,实际为JSON文件)

{
    "dashboard": {
        "id": null,
        "title": "Raspberry Pi Cluster Health",
        "panels": [
            {
                "type": "graph",
                "title": "CPU Usage",
                "targets": [
                    {
                        "expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)",
                        "legendFormat": "{{`{{ instance }}`}}",
                        "refId": "A"
                    }
                ],
                "yaxes": [
                    {
                        "format": "percent",
                        "label": "CPU Usage",
                        "min": 0,
                        "max": 100
                    }
                ],
                "xaxis": {
                    "show": true
                },
                "gridPos": {
                    "h": 9,
                    "w": 12,
                    "x": 0,
                    "y": 0
                }
            }
        ],
        "schemaVersion": 16,
        "version": 0,
        "refresh": "5s"
    }
}

验证步骤

ConfigMap验证

已确认ConfigMap创建正常且包含JSON内容:

kubectl get configmap grafana-dashboards -n monitoring -o yaml

输出:

apiVersion: v1
data:
  pi-cluster-health.json: |-
    {
      "dashboard": {
        "id": null,
        "title": "Raspberry Pi Cluster Health",
        ...
    }

Pod内文件验证

已确认JSON文件正确挂载到Grafana Pod:

kubectl exec -it <grafana-pod> -n monitoring -- /bin/sh
cat /var/lib/grafana/dashboards/pi-cluster-health.json

输出:

{
  "dashboard": {
    "id": null,
    "title": "Raspberry Pi Cluster Health",
    ...
}

Grafana日志

检查Grafana日志发现错误:

kubectl logs -l app=grafana -n monitoring

输出:

logger=provisioning.dashboard type=file name=default t=2024-07-11T02:33:51.503463709Z level=error msg="failed to load dashboard from " file=/var/lib/grafana/dashboards/pi-cluster-health.json error="Dashboard title cannot be empty"

观察结果

JSON文件格式、存放位置均正确,但Grafana日志仍提示“仪表盘标题不能为空”,而标题在JSON中已明确设置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 05:26:14