Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Grafana Dashboard as Code using Grafana Foundat...
Search
Matts966
May 22, 2025
3
80
Grafana Dashboard as Code using Grafana Foundation SDK
Grafana Foundation SDK を使った Grafana Dashboard as Code
Matts966
May 22, 2025
Tweet
Share
More Decks by Matts966
See All by Matts966
nilarg
matts966
0
150
Static Analysis in Go
matts966
0
3k
Phics
matts966
0
77
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
25
2.8k
Building Adaptive Systems
keathley
41
2.6k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Music & Morning Musume
bryan
47
6.6k
Faster Mobile Websites
deanohume
307
31k
What's in a price? How to price your products and services
michaelherold
245
12k
Transcript
Grafana Foundation SDK を使った Grafana Dashboard as Code Vald: Cloud
Native Distributed Vector Database Matts966 資料URL © vdaas/vald 1
自己紹介 松井誠泰 OSSのベクトルデータベースValdチームに転職して2ヶ月目 趣味 github.com/Matts966 © vdaas/vald 2
Grafanaボード管理の課題 コンポーネント毎にボード・パネルをたくさん管理 コンポーネントかなり違うものの共通化の余地あり 繰り返し、条件分岐したい パネル毎にアップグレード作業 JSONでバージョン管理はしていたものの シンプルなパネルでもGUIからexportされたJSONは大きくな ってしまい、直接読み書きするのが難しい © vdaas/vald
3
Grafana Dashboard as Codeの選択肢 - JSONベース 方法 概要 特徴・注意点 JSON管理(元の手
法) GUIで作成後にJSON出力 単純・最小構成向け、再利用や 共通化は弱い Terraform Provider for Grafana IaC統合(HCL) JSON構造の記述が必要、 Terraformに統合できる Git Sync GUI変更を自動でGit同期 (Grafana 12以降) GUI派に便利、繰り返しや再利 用には不向き © vdaas/vald 4
Grafana Dashboard as Codeの選択肢 - コードベース 方法 概要 特徴・注意点 Grizzly
CLIでリソースとし て管理可能 CLIが便利・Jsonnet使える Grafonnet Jsonnetで生成 繰り返し処理など対応 Grabana Goで記述、宣言的 唯一JSON逆生成可能、開発は grafana- foundation-sdk に移行傾向 grafana- foundation-sdk 公式SDK(Go等) 本日のお題 © vdaas/vald 5
grafana-foundation-sdk の概要 Grafana公式が提供する言語ごとのSDK GrafanaのAPIスキーマをベースに自動生成されている Go, TypeScript, Python, Java に対応 ©
vdaas/vald 6
選定理由・メリット 繰り返しを簡単に表現できる 同じようなダッシュボードをコンポーネントごとにつくっている場合などに、関 数等で整理しやすい メトリクスを管理しているコードと同じ言語で書くことで、メトリクス名を参照で き、二重管理を避けられる メトリクスの宣言→ダッシュボード作成まで自動化可能 © vdaas/vald 7
メリット メソッドチェーンで書けるので、補完に沿って書ける テキストなのでLLMの力を借りやすい © vdaas/vald 8
メリット 簡単にバージョンアップグレード 公式がAPIスキーマから自動生成しているので go get でタグを切り替えるだけで簡単に最新に追従できる 網羅性が高い go get github.com/grafana/grafana-foundation-sdk/
[email protected]
+cog-v0.0.x
© vdaas/vald 9
メリット 公式から promql もビルダーが提供されていて、複雑な文字列、括弧の対応の管理を 避けられる © vdaas/vald 10
デメリット grabanaではサポートされていたJSONからのコード生成がない 最初導入する時だけはちょっと大変 GUIでの操作ができない やるとすると、操作の手順を覚えて関数呼び出しに書き直すイメージ ここが気になる場合、 Grizzly や Git Sync、自前の自動化がおすすめ
© vdaas/vald 11
注意点 grafana/grafana- foundation-sdk#673 パネル配置にバグが あるため 行や列の位置がズレ るなど 自分で整理するコー ドを書く必要あり 現状
puzzle.go としてVald レポジトリで公開 © vdaas/vald 12
結果 github.com/vdaas/vald/pull /2937 コード量を1万行近く削減 ほぼ同じボードを再現 © vdaas/vald 13
おすすめの選び方 繰り返しが少ない → Grafana12の新機能でGUIから反映できるGit Sync 共通基盤開発など再利用性重視 → grafana-foundation-sdk 今後Go/TypeScript/Python/Javaで自動化していくなら grafana-foundation-sdk
がおすすめ © vdaas/vald 14
参考リンク Three years of Grafana dashboards as code grabana の作者の方で、今は
Grafana Labs で grafana-foundation-sdk を開発 されている方のブログ grafana-foundation-sdk GitHub © vdaas/vald 15
Contributions are Welcome! vald.vdaas.org © vdaas/vald 16