Kesalahpahaman Nomor Satu
Banyak tim memperlakukan Grafana seperti basis data: "simpan metrik kita di Grafana". Grafana tidak menyimpan data time series sama sekali. Ia adalah lapisan presentasi — ia bertanya ke sistem lain, menerima jawabannya, lalu menggambarnya.
Grafana adalah antarmuka kueri dan visualisasi yang berbicara ke banyak sumber data melalui plugin, menyatukan hasilnya dalam satu dashboard, dan memicu alert berdasarkan hasil kueri tersebut.
Apa yang Disimpan Grafana di Basis Datanya Sendiri
Grafana punya basis data internal (SQLite secara default, PostgreSQL/MySQL untuk produksi), tetapi isinya bukan metrik Anda:
| Disimpan Grafana | TIDAK disimpan Grafana |
|---|---|
| Definisi dashboard (JSON) | Nilai metrik / titik data |
| Konfigurasi data source + kredensial | Log aplikasi |
| Pengguna, tim, organisasi, izin | Trace |
| Aturan alert & riwayat state alert | Riwayat nilai metrik jangka panjang |
| Anotasi, playlist, snapshot, API key | Agregasi hasil kueri (kecuali cache sementara) |
Alur Satu Panel, Dari Klik Sampai Grafik
Browser Grafana Server Data Source
│ │ │
│ 1. buka dashboard │ │
├───────────────────────>│ │
│ 2. JSON model dashboard│ │
│<───────────────────────┤ │
│ 3. tiap panel kirim │ │
│ query + time range │ │
├───────────────────────>│ 4. proxy ke data source │
│ ├────────────────────────>│
│ │ 5. data frame │
│ │<────────────────────────┤
│ 6. hasil (data frame) │ │
│<───────────────────────┤ │
│ 7. transform + render │ │
│ di browser │ │Transformation, unit, threshold, dan override dijalankan di browser, setelah data tiba. Artinya: transformasi tidak mengurangi beban data source, dan dashboard yang menarik 500.000 titik data akan membuat browser tersendat meskipun query-nya cepat.
Konsekuensi praktis: perkecil data di query, bukan di transformation.
Grafana dalam Tiga Pilar Observability
| Pilar | Penyimpan (backend) | Peran Grafana |
|---|---|---|
| Metrik | Prometheus, Mimir, InfluxDB, Graphite | Dashboard, alert, SLO |
| Log | Loki, Elasticsearch, CloudWatch Logs | Eksplorasi log, korelasi ke metrik |
| Trace | Tempo, Jaeger, Zipkin | Melihat span, lompat dari metrik ke trace |
Nilai terbesar Grafana justru muncul saat ketiganya disatukan: Anda melihat lonjakan latency di grafik, klik satu titik, dan langsung melihat trace request yang lambat itu. Ini yang disebut korelasi, dan dibahas tuntas di bab 12.
Model Data Universal: Data Frame
Apa pun sumbernya — Prometheus, PostgreSQL, atau CSV — Grafana mengubah hasil menjadi struktur seragam bernama data frame: sebuah tabel berkolom, di mana tiap kolom punya tipe dan metadata.
Frame: "cpu_usage{instance=\"web-01\"}"
┌─────────────────────┬─────────┐
│ Time (time) │ Value │ ← nama kolom (tipe)
├─────────────────────┼─────────┤
│ 2026-07-28 09:00:00 │ 0.42 │
│ 2026-07-28 09:00:15 │ 0.47 │
│ 2026-07-28 09:00:30 │ 0.51 │
└─────────────────────┴─────────┘
labels: { instance: "web-01", job: "web" }Memahami ini adalah kunci: transformation bekerja pada data frame, bukan pada grafik. Ketika sebuah transformation tidak berfungsi seperti harapan, hampir selalu karena bentuk frame-nya berbeda dari yang Anda bayangkan.
Versi dan Perubahan Besar yang Perlu Anda Tahu
- Grafana 8 — memperkenalkan unified alerting (menggantikan alert per-panel yang lama).
- Grafana 9–10 — panel Time series menggantikan Graph (old); Explore menjadi matang.
- Grafana 11 — Scenes sebagai fondasi dashboard baru, Explore Metrics, alerting makin modular.
- Grafana 12 — Dynamic Dashboards, Git Sync untuk dashboard-as-code.
- Grafana Agent sudah end-of-life. Penggantinya adalah Grafana Alloy, distribusi OpenTelemetry Collector yang juga bisa membaca konfigurasi Prometheus. Jangan memulai proyek baru dengan Agent.
- Promtail untuk pengiriman log juga sudah tidak dikembangkan lagi; gunakan Alloy dengan komponen
loki.source.*. - Alert per-panel gaya lama (legacy alerting) sudah dihapus total sejak Grafana 11. Semua alert kini melalui Unified Alerting.
- Panel Graph (old) dan Singlestat sudah dihapus. Gunakan Time series dan Stat.
Materi ini memakai Grafana 12 sebagai acuan, dan menandai secara eksplisit bagian yang berbeda di versi lama.