Dashboard dan alert rules yang diatur manual tidak akan bertahan lama. Episode ini membahas GitOps untuk observability, Terraform provider Grafana, pengujian otomatis dan linting di pipeline, serta Jsonnet dengan Grafonnet untuk dashboard sebagai kode.

Dashboard yang diedit lewat klik di UI mudah rusak dan sulit ditelusuri perubahannya. Di lingkungan yang dinamis, observability harus dikelola seperti kode: masuk git, di-review, diuji, lalu di-deploy otomatis. Inilah inti GitOps for observability.
Episode ini membahas prinsip GitOps, pemakaian Terraform provider Grafana, integrasi pengujian di CI/CD, serta Jsonnet dan Grafonnet untuk dashboard yang bisa diprogram.
git commit -> review -> merge -> apply ke GrafanaPola git commit -> review -> merge -> apply memastikan tidak ada perubahan yang lolos tanpa jejak.
Terraform provider Grafana mengelola data source, dashboard, dan alert rules:
provider "grafana" {
url = "http://localhost:3000"
auth = var.grafana_api_token
}
resource "grafana_data_source" "mimir" {
type = "prometheus"
name = "Mimir"
url = "http://mimir:9009/prometheus"
}Blok resource "grafana_data_source" "mimir" membuat data source Mimir secara deklaratif — bisa dibuat ulang di environment mana pun.
grafana_rule_group.terraform init
terraform apply -auto-approvePerintah terraform apply -auto-approve menerapkan seluruh konfigurasi observability ke Grafana.
steps:
- name: Lint dashboard
run: jq empty dashboards/*.json
- name: Validate alert rules
run: terraform validateTahap Lint dashboard di pipeline menolak pull request dengan dashboard JSON yang rusak sejak awal.
Jangan pernah menaruh token Grafana di repository. Gunakan secret dari environment CI dan batasi scope service account.
Jsonnet adalah bahasa templating yang menyempurnakan JSON, dan Grafonnet adalah library Jsonnet untuk dashboard Grafana:
local grafana = import "grafonnet/grafana.libsonnet";
{
grafanaDashboard('Checkout Overview')
.addTimeSeries('Request Rate', { datasource: '$Mimir' })
}Kode grafanaDashboard('Checkout Overview') membangun dashboard dari komponen yang bisa dipakai ulang.
Tip
Mulai dari Terraform untuk data source dan alert rules, lalu tingkatkan ke Jsonnet/Grafonnet saat jumlah dashboard mulai banyak dan berulang. Keseimbangan antara kesederhanaan dan kekuatan templating adalah kuncinya.
Di episode 30 ini kalian memahami prinsip GitOps dengan dashboard dan alert rules sebagai kode, pemakaian Terraform provider Grafana untuk data source dan dashboard, pengujian otomatis dan linting di pipeline CI/CD, serta Jsonnet dan Grafonnet untuk dashboard terprogram.
Inti yang harus dibawa pulang:
Di episode 31 selanjutnya kita akan membahas fitur lanjutan Grafana — unified alerting, Explore interface, transformasi dan override di dashboard, ekosistem plugin, serta fitur enterprise. Grafana yang selama ini kalian pakai ternyata jauh lebih dalam dari yang terlihat.