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 as Code - Terraformによるダッシュボードとアラートの構成管理...
Search
kazue
November 13, 2025
Technology
32
0
Share
Grafana as Code - Terraformによるダッシュボードとアラートの構成管理 @ HashiTalks:Japan 2025
kazue
November 13, 2025
More Decks by kazue
See All by kazue
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
980
わかる!Hashicorp Waypoint | HashiTalks: Japan2023
kazue
0
1.1k
シングルテナント構成のSaaSのIaCにTerraform Workspacesを導入してみた
kazue
1
2.3k
RDS Proxy, Amazon Kendra, Amazon CodeGuruの紹介 #cmregrowth #reinvent
kazue
0
1.9k
AuroraかRDSどちらを選ぶべきか | Developers.IO 2019 in OSAKA
kazue
0
190k
Codeシリーズで始めるはじめてのCI/CD
kazue
1
560
AKIBA.AWS#14 Terraform v0.12
kazue
0
2k
Other Decks in Technology
See All in Technology
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
400
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
1.1k
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
160
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
110
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
320
Dynamic Workersについて
yusukebe
2
580
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
620
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
170
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
310
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
210
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
38
40k
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
2
2.2k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
We Are The Robots
honzajavorek
0
240
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
320
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
A Modern Web Designer's Workflow
chriscoyier
698
190k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Claude Code のすすめ
schroneko
67
220k
Transcript
None
クラスメソッド株式会社 産業支援グループ 製造ビジネステクノロジー部 エンジニア(バックエンド・インフラ) Terraform > EKS(k8s) > 生成AI(Bedrock), サーバーレス(AWS)
Hashicorp Ambassador 2023〜2025 ブログ: https://dev.classmethod.jp/author/kazue-masaki/ 自己紹介: Masaki Kazue (かずえ)
Grafanaリソース(ダッシュボード、アラート)をTerraformを用いて構成管理する際 の、具体的なTips 注意事項 2024年1月〜4月頃に実施したので、情報が古い部分があるかもしれません 本セッションで話すこと 3
1. Grafanaとは 2. プロジェクト背景 3. Terraformを選んだ理由 4. ダッシュボード編 5. アラート編
6. まとめ 目次 4
None
メトリクス、ログ、トレースなどのデータを可視化するためのオープンソースの監視・ 分析プラットフォームです。 主な特徴 多様なデータソースに対応: Prometheus、Elasticsearch、CloudWatch、MySQL など 柔軟なダッシュボード: グラフ、テーブル、ヒートマップなど、様々な形式でデータ を可視化 アラート機能:
Slack、PagerDuty、メールなど様々なチャネルに通知 クエリエディタ: データソースごとに最適化されたクエリエディタを提供 Grafanaとは 6
参考: https://grafana.com/ja/grafana/
None
k8s(EKS)上でアプリケーションを稼働 k8sスタックにおける監視・可視化のデファクトスタンダードである Prometheus + Grafana を採用 AWSのマネージドサービス、Amazon Managed Service for
Prometheus(AMP), Amazon Managed Grafana (AMG) を採用 Grafanaのversionは9.4 EKS AMP AMG メトリクス送信 クエリ アプリケーション 基盤 メトリクス保存 可視化 プロジェクト背景 9
当初: 構成管理ツールを使わず、UIから各種Grafanaダッシュボードを作成していた アラート追加時に以下を実現したいと考え、構成管理ツール導入を検討 変更履歴を残したい 別環境への横展開(Dev→Stg→Prod)を容易にしたい 構成管理ツール導入の背景 10
None
Terraformの経験はすでに十分あった GrafanaやPrometheus(PromQL)には初挑戦 → 構成管理ツールまで未経験のものを採用するのは辛い Grafanaリソースの構成管理ツールとして、他により強い候補が見当たらなかった Grizzly: アラート系リソースが(おそらく)未対応だった(現在は対応済) Grafonnet: experimentalだった(2025/11現在でも依然experimental) Terraformを選んだ理由
12
None
前述の通り、すでにダッシュボードはあった grafanaのダッシュボードはJSONで構造化されており、UIでそのJSONを確認でき る このJSONを使ってterraformリソースとしてはダッシュボード ( grafana_dashboard )のみを定義する Tips1: UIで作り込んで、Terraformに取り込む 14
クエリのテスト PromQLの動作確認が即座にできる 視覚的フィードバック グラフの見た目をリアルタイムで確認できる UIの方が効率的な理由 15
1. GrafanaのUIでダッシュボードを作成 2. 動作を確認 3. UIでJSONモデルを表示、コピー 4. JSONファイルとして保存 5. grafana_dashboard
の config_json にJSONファイルを指定 resource "grafana_dashboard" "main" { folder = var.folder_uid config_json = file("${path.module}/json/main-dashboard.json") overwrite = true } フロー 16
(UIではなく、 )Terraformで作り込むのはつらい 17
Grafanaのダッシュボード定義JSONには、環境固有のIDが含まれることがあり、こ れが複数環境での管理を困難にします。 問題となる要素 datasource UID(unique ID): "datasource": {"uid": "abc123xyz"} Tips2:
JSON内に固有ID値が入らないようにする 18
# 環境固有のUIDを直接参照 "datasource": { "type": "prometheus", "uid": "abc123xyz" } #
環境間で共通のname を指定 "datasource": "AMP" 対策: データソース参照を名前ベースにする 19
GrafanaUIからコピーしたJSONをTerraformに組み込む前に、以下の正規表現変換を 実施 "datasource": \{\n( +)"type": "prometheus",\n( +)"uid": "[a-zA-Z]+"\n( +)\}, ↓
"datasource": "AMP", 正規表現での変換 20
None
Terraformで作成したアラート関連のリソースは、GrafanaのUI上で編集できなくな る (※ ダッシュボード系のリソースは可能) Tips3: Terraformで作ったリソースはUIで変更できない 22
provisioned ラベルが付いているリソースはUIから編集不可 編集ボタンも非表示 UIでの表示 23
手動変更による設定ドリフトを防ぐための仕様 各アラート系Grafanaリソースは、UI以外から作成した場合その作成方法 (Terraform,APIなど)の情報(provenance)を持っている 同じprovenanceからでないと編集できない なぜ編集できないのか 24
provenance? 参考: https://www.google.com/search?q=provenance+%E6%84%8F%E5%91%B3 25
disable_provenance = true を追加すれば可能、とドキュメントには書かれている 実は Terraform→UIはいけるらしいけど? 参考: https://grafana.com/docs/grafana/latest/alerting/set-up/provision-alerting-resources/terraform-provisioning/#enable-editing-resources-in- the-grafana-ui 26
もしかして: AMG(Amazon Managed Grafana)ではできない? ドキュメントには disable_provenance についての言及は無く、 「UI編集不可」としか 書かれていなかった 実際に試したところできなかった
参考: https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v9-alerting-setup-provision.html 27
terraform import コマンドや import ブロックが使用可能 ただしコード⇔実際のリソース間に差分があるとreplaceされる → 以降はUIで変更 不可 前述の
disable_provenance の値を true / false 変更しても挙動変わらず UI→Terraformはいけた 28
None
1. UIで作成→インポート の流れで効率化 2. 固有ID値を排除 して環境間の移植性を確保 3. Terraformで作ったアラートリソースはUIで変更不可 という制約を理解する まとめ
今回紹介したTips 30