
Grafana Git Syncが一般提供開始されたので使ってみた
はじめに
Grafanaのv12でプレビューリリースされたGit Sync機能がv13で一般提供が開始されました。 以前v12で発表されたプレビュー版についてはこちらの記事で書きました。
プレビュー版の時点ではセルフホスト版でしかサポートされていませんでしたが、GAに伴いGrafana CloudでもGit Sync機能が利用できるようになりました。
ということでさっそくGrafana CloudでGit Sync機能を試してみたいと思います。
事前準備
リポジトリ作成
今回はGit管理としてGitHubを使います。
まずはダッシュボードを管理するリポジトリを作成しておきます。
今回はgrafana-git-syncという名前のリポジトリを作成しています。
後ほどリポジトリのURLが必要になるので控えておきましょう。
Personal Access Token作成
次にGrafanaからGitHubを操作するためのPersonal Access Token(以下PAT)を作成します。
PATのRepository accessは、作成したリポジトリに限定しています。
Git Syncは以下の権限を必要とするので、権限を付与したPATを作成します。
- 内容:読み書き
- メタデータ:読み取り専用
- プルリクエスト:読み書き
- Webhook:読み書き

生成されたトークンをコピーしておきます。

一旦GitHub側の作業は完了です。
Grafana CloudでのGit Sync設定
Administration > General > Provisioning の順に進みます。
今回はGitHubを使うのでConfigure with GitHubを選択します。

認証方法はGitHubアプリとの連携 or GitHubのPATを利用する方法があります。
今回はPATを選択します。
先ほど作成したトークンとリポジトリのURLを貼り付けます。

次にブランチとダッシュボードのjsonファイルを保存するパスを選択します。

この画面に注意点として書かれていますが、無料プランではGrafana Cloudのアカウント毎に接続できるリポジトリは1つまでみたいです。
上位プランでは10個まで紐付けが可能なようです。
その他、細かい仕様は以下のドキュメントにまとまっています。
次に同期設定です。

Display nameに入力した内容で新しいダッシュボードフォルダが自動的に作成されます。
そして、そのダッシュボードがGitHubリポジトリと同期する形になります。
既存のダッシュボードは選択できないようで、既存のダッシュボードと同じ名前にすると、同名のフォルダがもう一つ作成されました。
最後にオプション設定です。

Sync Interval(同期間隔)は「何秒おきにGitHubの内容をGrafanaに反映するか」という設定です。
今回はデフォルトのまま60sで設定します。
また、Enable pull request option when saving と Enable push to synchronized branch はダッシュボードをUI上から変更する際のオプションです。
「ダッシュボードの保存時にプルリクエストを作るか」と「ダッシュボード編集時に同期しているブランチに直接コミットできるか」の設定です。
今回はどちらもチェックを入れます。
Enable push to synchronized branch はレビュープロセスを挟みたい本番環境の場合はオフ、変更内容を即時反映させたい検証開発環境の場合はオンみたいな使い方になると思います。
この設定はプレビュー版には無かった機能ですね。
Finishを押してしばらく待つと同期が完了します。

Git Sync管理下にUI上からファイルを作成
ダッシュボードの一覧を見ると、同期してる感じのあるアイコンのフォルダが作成されています。
では、ここに適当なダッシュボードを作成して保存してみましょう。

保存時に色々聞かれます。
今回はブランチや保存先のフォルダ(あれば)、ファイル名、コミットメッセージ(Comment)を入力して、保存します。

GitHubを確認すると先ほど指定したdemo-dashboard.jsonというファイル名で、コミットメッセージも確認できました。

コードでダッシュボードを編集
では、逆にコードを変更してみます。
最近だとGrafanaのMCPサーバーなど、直接ダッシュボードのjsonファイルを編集することも多くなってきたので、ローカル側で変更を加えて、GitHub上で変更箇所を確認するといったことも今後は増えてくるかもしれません。
それではローカルにcloneしたダッシュボードjsonをClaude Codeに渡して、
「ダッシュボードをBar chartに変更してからpushして」とお願いします。
これで変更からpushまでできたと思うので、GitHubを確認します。
更新されてますね。

それではダッシュボードも確認します。
こちらも問題なくBar chartに変更されてます。

これでGit Syncの基本的な動作は確認できました。
プルリクエスト
次にプルリクエストを試します。
先ほどのBar chartのパネルをStatに変更して保存します。
保存時にmainではなくdevelopブランチを選択して保存します。

すると画面上部にプルリクエストを作成するボタンが表示されるので「Open pull request in GitHub」をクリックします。

作成したプルリクエストを確認すると何やら
See the original and preview of demo-dashboard.json.
と書かれています。

それぞれリンクを開いてみましょう。
なんと、変更前(左)と変更後(右)のダッシュボードが表示されました。(左右に表示されているのはブラウザの機能です)
これはいい!!

プレビュー版でも同じような機能があり、以前こちらの記事で書きましたが、機能を利用するための前提条件を準備するのが面倒だったり、プルリクエスト上で見える差分が画像ベースで見づらいというのが気になっていました。
しかし、Grafana Cloudでは裏側の仕組みを意識する必要もなく、変更前後のプレビュー画面も実際に操作できる画面が表示されるため非常に体験が良いです!
これがあればAIでローカルからJSONを変更した場合でもプレビューのハードルが下がりますね。
既存のダッシュボードをGit Sync管理下に移動する
当然既存のダッシュボードをGit Syncの管理下に移動したくなりますよね?
この記事を書いている時点では既存のダッシュボードをGit Syncのフォルダに移動することはできませんでした。
しかし、公式ドキュメントを確認すると以下の記載があったので、そのうち移動機能は実装されるじゃないかと思います。
Traditional operations such as moving or copying a dashboard to a provisioned folder or bulk export are gradually being incorporated into Git Sync. In the meantime the following options are available:
参照: https://grafana.com/docs/grafana/latest/as-code/observability-as-code/git-sync/export-resources/
しかし、今すぐ移動したい!という方もいると思います。
上記のドキュメントにいくつか方法がありましたので、ここではUI上から既存のダッシュボードをGit Syncフォルダに移動する方法を試します。
概要としては既存のダッシュボードを保存する際にSave as copyを選択するだけです。
やってみましょう。
まずは既存のダッシュボードを開いて、編集モードに入り、Save as copyを選択します。

Target folderをgit-syncに選択して、必要な情報を埋めて保存します。

これで既存のダッシュボードをGit Syncフォルダに移動(正確にはコピー)することができました。

ちなみに、ドキュメントでは他の移行方法としてGrafana CLIを使う方法と、JSONエクスポートを使う方法が紹介されていました。
どの選択肢でもそこまで難しいことはないと思います。
ダッシュボードの数が多い場合はGrafana CLIで機械的に移行するのが良いかもしれません。
私は急ぎGit Syncフォルダに移行したい!というダッシュボードは多くないので、気長にアップデートを待ちたいと思います。
まとめ
Git Sync機能がGAしたので触ってみました。
プレビュー時と比較して、Grafana Cloudで利用できる点、そしてGrafana Cloudのメリットを活かして細かい設定をユーザーがあまり意識することなく使えるようになっている印象です。
導入が簡単で、レビュー機能も使いやすくなっているので今後はAIでjsonを編集して、変更箇所をプレビューするといった使い方も増えてくるんじゃないかと思いました。









