Aturan Pemilihan yang Sederhana
Pilih visualisasi berdasarkan pertanyaan yang ingin dijawab, bukan berdasarkan yang terlihat paling menarik. Dashboard yang bagus terlihat membosankan dan bisa dibaca dalam tiga detik.
| Pertanyaan | Panel | Bentuk data |
|---|---|---|
| "Bagaimana perubahannya dari waktu ke waktu?" | Time series | Deret waktu |
| "Berapa angkanya sekarang?" | Stat | Satu nilai |
| "Seberapa dekat ke batas?" | Gauge | Satu nilai + threshold |
| "Siapa yang terbesar?" | Bar gauge / Bar chart | Kategori + nilai |
| "Tunjukkan semua baris datanya" | Table | Tabel |
| "Bagaimana sebaran nilainya?" | Heatmap / Histogram | Distribusi |
| "Kapan statusnya berubah?" | State timeline | Deret status diskret |
| "Berapa lama tiap kondisi berlangsung?" | Status history | Deret status |
| "Bagaimana alur/proporsinya?" | Pie chart | Bagian dari total |
| "Bagaimana hubungan dua metrik?" | XY chart | Dua nilai numerik |
Time Series — Panel yang Akan Anda Pakai 70% Waktu
Opsi yang benar-benar mengubah keterbacaan:
{
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max", "lastNotNull"],
"sortBy": "Max", "sortDesc": true
},
"tooltip": { "mode": "multi", "sort": "desc", "maxHeight": 400 }
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear",
"lineWidth": 2,
"fillOpacity": 10,
"gradientMode": "opacity",
"spanNulls": false,
"showPoints": "auto",
"stacking": { "mode": "none" },
"axisPlacement": "auto",
"axisSoftMin": 0
}
}
}
}spanNulls: false memutus garis saat data hilang — inilah yang Anda mau untuk metrik infrastruktur, karena putusnya garis adalah informasi (target mati).
spanNulls: true menyambungkan garis melewati lubang. Berguna untuk metrik yang memang jarang muncul (misalnya batch job harian), tetapi berbahaya untuk metrik yang seharusnya kontinu — ia menyembunyikan downtime.
Stat — Angka Besar yang Sering Disalahpahami
Panel Stat menampilkan satu nilai per series. Bila kueri Anda menghasilkan 12 series, Anda akan mendapat 12 kotak kecil, bukan satu angka.
| Opsi | Efek |
|---|---|
reduceOptions.calcs | Cara meringkas series: lastNotNull (paling umum), mean, max, sum |
reduceOptions.values | true = tampilkan semua nilai, bukan hasil reduce |
graphMode | area memberi sparkline latar; none untuk angka bersih |
colorMode | value (teks berwarna) atau background (kotak berwarna) |
textMode | auto, value, value_and_name, name |
last, pakai lastNotNulllast mengambil titik paling akhir apa adanya. Bila scrape terakhir belum masuk, titik itu null dan panel menampilkan "No data" — padahal sistem sehat. Ini sumber kepanikan yang tidak perlu saat dashboard dipasang di layar TV.
Gauge dan Bar Gauge
Gauge hanya bermakna bila ada maksimum yang benar-benar ada artinya: persentase disk, penggunaan kuota, rasio pool koneksi. Gauge untuk "request per detik" tidak bermakna, karena tidak ada nilai maksimum alamiah.
{
"type": "gauge",
"fieldConfig": {
"defaults": {
"unit": "percent", "min": 0, "max": 100,
"thresholds": { "mode": "absolute", "steps": [
{ "color": "green", "value": null },
{ "color": "orange", "value": 75 },
{ "color": "red", "value": 90 }
]}
}
},
"options": { "showThresholdMarkers": true, "showThresholdLabels": false }
}Heatmap — Cara Benar Melihat Distribusi Latency
Grafik garis p95 menyembunyikan bentuk sebaran. Dua sistem dengan p95 identik bisa punya perilaku yang sangat berbeda: satu konsisten, satu bimodal (mayoritas cepat, sebagian sangat lambat).
sum by (le) (
increase(http_request_duration_seconds_bucket[$__rate_interval])
)
# Panel options:
# Format : Heatmap
# Data format : "Time series buckets"
# Y axis unit : seconds (s)
# Color scheme : Spectral / Turbo (skema sekuensial)Heatmap menampilkan setiap bucket sebagai baris berwarna: gelap = sedikit request, terang = banyak. Pita ganda yang terpisah adalah tanda khas bimodal latency — biasanya berarti sebagian request kena cache dan sebagian tidak.
Table — Lebih Kuat dari yang Terlihat
Table bukan panel kelas dua. Dengan transformation dan cell options, ia menjadi alat triase terbaik:
- Cell type "Gauge" atau "Colored background" — kolom numerik menjadi bar mini.
- Data links pada sel — klik nama layanan, lompat ke dashboard detailnya.
- Filterable columns — pengguna menyaring sendiri tanpa mengubah kueri.
- Pagination — mencegah tabel 5.000 baris membekukan browser.
State Timeline — Untuk Status, Bukan Angka
Panel ini menggambar pita horizontal berwarna per series, berganti warna saat nilainya berubah. Sangat cocok untuk up, status deployment, atau kondisi alert. Padukan dengan value mapping agar 1 tampil sebagai "UP" hijau dan 0 sebagai "DOWN" merah.
- Pie chart untuk lebih dari 5 kategori — mata manusia buruk membandingkan sudut. Pakai Bar gauge.
- Graph (old) — sudah usang, migrasikan ke Time series.
- Gauge tanpa
maxyang bermakna. - Sumbu ganda pada satu grafik — hampir selalu menipu secara visual. Lebih baik dua panel bersebelahan.