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
84
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
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Statistics for Hackers
jakevdp
799
220k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Building Applications with DynamoDB
mza
95
6.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
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