Kodeloka
  1. Kodeloka
  2. Kelas Grafana
  3. Materi

Modul 1 · Modul 1 dari 15

Posisi Grafana: Alat Baca, Bukan Penyimpan Data

Memahami apa yang sebenarnya dikerjakan Grafana, apa yang bukan tugasnya, dan kenapa kesalahpahaman ini menyebabkan arsitektur monitoring yang keliru.

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.

🎯 Definisi kerja

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 GrafanaTIDAK disimpan Grafana
Definisi dashboard (JSON)Nilai metrik / titik data
Konfigurasi data source + kredensialLog aplikasi
Pengguna, tim, organisasi, izinTrace
Aturan alert & riwayat state alertRiwayat nilai metrik jangka panjang
Anotasi, playlist, snapshot, API keyAgregasi hasil kueri (kecuali cache sementara)

Alur Satu Panel, Dari Klik Sampai Grafik

alur render paneltext
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          │                         │
💡 Kenapa langkah 7 penting

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

PilarPenyimpan (backend)Peran Grafana
MetrikPrometheus, Mimir, InfluxDB, GraphiteDashboard, alert, SLO
LogLoki, Elasticsearch, CloudWatch LogsEksplorasi log, korelasi ke metrik
TraceTempo, Jaeger, ZipkinMelihat 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.

satu data frametext
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.
⚠️ Komponen yang sudah tamat riwayatnya
  • 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.