blog.anqou.net
rss
author
tags

Grafana v13.0.1 で Save dashboard の出力が壊れる

わくわく鮟鱇ランドのモニタリングシステムとして Grafana を採用しています。この Grafana は Grafana Helm Chart でデプロイされていて[1]、ダッシュボードのためのサイドカーコンテナが有効化されています。これにより、以下のような grafana_dashboard: "1" というラベルがついた ConfigMap をデプロイするとダッシュボードを追加できるようになっています。

kind: ConfigMap
metadata:
  labels:
    grafana_dashboard: "1"
  name: dashboard
data:
  dashboard.json: |-
    {
      ...
    }

この ConfigMap の data には Grafana のダッシュボード編集画面から “Save” ボタンを押すと表示される “Save dashboard” の JSON をコピペしていました。

ところが、今日この JSON をコピペして ConfigMap に貼り付けると、Grafana が以下のようなエラーを出力してダッシュボードを表示できなくなってしまいました:

error="dashboard appears to be in v2 format. Please use the /apis/dashboard.grafana.app/v2 API"

少し調査したところ、現在の最新版である Grafana v13.0.1(+security-01) で出力される “Save dashboard” 画面の JSON は、バグによって不完全なものになっているようです。具体的には、v2 フォーマットのうち .spec 配下の内容しか表示されません。そこで正しい v2 フォーマットを参考に、不足している apiVersion などを追加すると無事読み込まれるようになりました[2]

// ここから
{
    "apiVersion": "dashboard.grafana.app/v2",
    "kind": "Dashboard",
    "metadata": {
        "annotations": {
            "grafana.app/createdBy": "user:ffj6ck2tk9se8b",
            "grafana.app/folder": "",
            "grafana.app/saved-from-ui": "Grafana v13.1.0-local (858bd26f82)"
        },
        "creationTimestamp": "2026-04-16T13:30:37Z",
        "generation": 1,
        "labels": {
            "grafana.app/deprecatedInternalID": "136208330895360"
        },
        "name": "adfbbd6",
        "namespace": "default",
        "resourceVersion": "1776346237382014",
        "uid": "967da577-8ccd-4859-b492-f3ceacec2355"
    },
    "spec":
// ここまで追加。この下に Save dashboard の JSON を貼る。

ちなみに Save dashboard ではなく Export dashboard の画面から JSON をコピーすると正しい形式になります。また、このバグは main ブランチではすでに修正されているようです

注釈

  1. 実際には victoria-metrics-k8s-stack 経由で使用しています。

  2. metadata の中身は適当に修正しても良さそうですが、そのままでも動きます。