Field Config Berlaku untuk Semua Panel
Berbeda dari options yang khas per tipe panel, fieldConfig berlaku universal. Ia terdiri dari defaults (untuk semua field) dan overrides (pengecualian bertarget).
Unit — Perbaikan Termurah untuk Dashboard Apa Pun
Angka 0.0421 tidak berarti apa-apa. Dengan unit yang benar ia menjadi 4,21% atau 42,1 ms.
| Unit | Kode | Contoh input → tampilan |
|---|---|---|
| Detik | s | 0.042 → 42 ms |
| Milidetik | ms | 1500 → 1.5 s |
| Byte (SI) | bytes | 1500000 → 1.5 MB |
| Byte (IEC) | bytes(IEC) | 1048576 → 1 MiB |
| Persen (0–100) | percent | 42 → 42% |
| Persen (0.0–1.0) | percentunit | 0.42 → 42% |
| Request/detik | reqps | 1500 → 1.5 K req/s |
| Rupiah | currencyIDR | 1500000 → Rp1,5 jt |
Prometheus biasanya menghasilkan rasio 0.0–1.0. Bila Anda memilih percent, angka 0.042 ditampilkan sebagai 0,042% — padahal sebenarnya 4,2%.
Aturan: hasil pembagian tanpa * 100 → percentunit. Hasil yang sudah dikali 100 → percent. Jangan pernah melakukan keduanya.
Threshold: Warna sebagai Sinyal
{
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 0.005 },
{ "color": "red", "value": 0.01 }
]
}
}Langkah pertama harus bernilai null — itu adalah warna dasar. Mode percentage menghitung threshold relatif terhadap min–max, berguna saat batasnya berbeda per series.
Sejak unified alerting, warna threshold di panel tidak lagi membuat alert. Keduanya terpisah sepenuhnya.
Bahayanya: panel bisa merah tanpa ada alert, atau alert berbunyi sementara panel tetap hijau, karena angka batasnya berbeda. Selalu samakan nilainya secara sadar, dan tulis nilai itu di description panel.
Value Mapping: Angka Menjadi Kata
{
"mappings": [
{ "type": "value", "options": {
"0": { "text": "DOWN", "color": "red", "index": 0 },
"1": { "text": "UP", "color": "green", "index": 1 },
"2": { "text": "DEGRADED", "color": "orange", "index": 2 } } },
{ "type": "range", "options": {
"from": 0, "to": 99.9,
"result": { "text": "Di bawah SLO", "color": "red", "index": 3 } } },
{ "type": "regex", "options": {
"pattern": "^prod-.*",
"result": { "text": "Produksi", "color": "purple", "index": 4 } } },
{ "type": "special", "options": {
"match": "null",
"result": { "text": "Tidak ada data", "color": "text", "index": 5 } } }
]
}Urutan penting: mapping dievaluasi berurutan, yang pertama cocok yang dipakai. special menangani null, NaN, dan string kosong.
Override: Aturan untuk Sebagian Field Saja
Inilah fitur yang membuat Anda tidak perlu membuat panel terpisah hanya karena satu series butuh perlakuan berbeda.
"overrides": [
{
"matcher": { "id": "byName", "options": "error rate" },
"properties": [
{ "id": "unit", "value": "percentunit" },
{ "id": "custom.axisPlacement", "value": "right" },
{ "id": "color", "value": { "mode": "fixed", "fixedColor": "red" } },
{ "id": "custom.lineWidth", "value": 3 }
]
},
{
"matcher": { "id": "byRegexp", "options": "/.*p99.*/" },
"properties": [
{ "id": "custom.lineStyle", "value": { "fill": "dash", "dash": [10, 10] } }
]
},
{
"matcher": { "id": "byFrameRefID", "options": "B" },
"properties": [
{ "id": "custom.hideFrom", "value": { "legend": true, "tooltip": false, "viz": false } }
]
}
]| Matcher | Menargetkan |
|---|---|
byName | Satu field dengan nama persis |
byRegexp | Semua field yang cocok pola |
byType | Semua field bertipe tertentu (number, time, string) |
byFrameRefID | Seluruh hasil dari satu kueri (refId) |
byValue | Field yang nilai reduksinya memenuhi kondisi |
Skema Warna
- Classic palette — warna berbeda per series. Default, cocok untuk grafik multi-series.
- From thresholds — warna mengikuti nilai. Wajib untuk Stat dan Gauge.
- Green-Yellow-Red (by value) — gradien kontinu, bagus untuk tabel.
- Single color — bila panel hanya punya satu series.
- Shades of a color — untuk series yang berkerabat, misalnya p50/p90/p99.
Sekitar 8% pria mengalami buta warna merah-hijau. Dashboard yang hanya mengandalkan merah versus hijau tidak terbaca oleh mereka.
- Sertakan isyarat kedua: ikon, teks lewat value mapping, atau posisi.
- Merah–biru lebih aman daripada merah–hijau.
- Jangan pakai warna sebagai satu-satunya pembeda antar series di grafik padat — pakai juga
lineStyle.
Data Links: Panel yang Bisa Diklik
"links": [
{
"title": "Lihat log layanan ini",
"url": "/d/log-layanan/log?var-layanan=${__field.labels.layanan}&from=${__from}&to=${__to}",
"targetBlank": false
},
{
"title": "Buka runbook",
"url": "https://wiki.internal/runbook/${__field.labels.job}",
"targetBlank": true
}
]Variabel yang tersedia di data link: __value.raw, __value.numeric, __value.time, __field.name, __field.labels.<label>, __from, __to, __series.name, serta seluruh variabel dashboard.