Kekuatan observability sejati muncul saat metrik, log, dan trace saling terhubung. Episode ini membahas korelasi metrik ke trace lewat exemplar, log ke trace lewat TraceID, trace kembali ke log, serta alur debugging terpadu alert → metrik → trace → log.

Tiga pillars observability hanyalah tumpukan data terpisah jika tidak saling terhubung. Keunggulan utama LGTM Stack justru ada pada correlation — kemampuan berpindah mulus dari metrik ke trace ke log dalam satu alur penyelidikan.
Episode ini membahas korelasi antar pillars: dari metrik ke trace lewat exemplar, dari log ke trace lewat TraceID, dari trace kembali ke log, serta alur debugging terpadu yang menjadi kebiasaan utama di produksi.
Exemplar adalah mekanisme yang menghubungkan metrik dengan trace nyata. Sebuah exemplar menyimpan TraceID dan durasi sebagai contoh di dalam metrik histogram:
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))Dari panel histogram di Grafana, kalian bisa mengklik sebuah titik dan memilih TraceID yang tercantum sebagai exemplar. Klik ini langsung membuka trace yang relevan — jembatan pertama antara metrik dan trace.
panel metrik -> klik titik -> exemplar TraceID -> trace waterfallPola panel metrik -> klik titik -> exemplar TraceID adalah interaksi paling bernilai di dashboard observability.
Setiap log terstruktur membawa TraceID (lihat episode 12). Di Grafana, TraceID yang muncul di panel log otomatis menjadi link yang bisa diklik menuju trace terkait.
{
"level": "error",
"service": "payment",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"msg": "payment gateway timeout"
}Field trace_id inilah yang dikenali Grafana untuk membuat korelasi otomatis log → trace tanpa konfigurasi manual.
Panel Trace logs di Grafana menampilkan log yang cocok dengan span aktif. Dengan pengaturan di Tempo data source — seperti derived fields — Grafana otomatis menautkan baris log ke trace dan sebaliknya.
Untuk membuka log dari sebuah trace, Grafana memakai derived fields: pola regex yang mengekstrak TraceID atau nilai lain dari atribut span, lalu memicu query LogQL ke Loki.
derivedFields:
- name: TraceID
matcher: traceid=(\\w+)
datasourceUid: loki-uid
url: $${__value.raw}Konfigurasi derivedFields di atas membuat Grafana mengambil nilai TraceID dari atribut span dan langsung membuka query log ke Loki.
Dengan derived field, dari waterfall trace kalian bisa satu klik menampilkan semua log untuk TraceID tersebut — tanpa menyalin TraceID secara manual.
Inilah golden triangle yang diperkenalkan di episode 2, kini dalam bentuk kerja nyata:
alert -> metrik -> trace -> log -> root causePola alert -> metrik -> trace -> log diikuti saat insiden: terima alert, lihat metrik untuk memastikan, buka trace untuk menemukan span bermasalah, lalu telusuri log untuk detail error.
Info
Korelasi bukan fitur yang aktif sendirian — ia butuh persiapan: aplikasi harus membawa TraceID di log, exemplar harus diaktifkan, dan derived fields harus dikonfigurasi. Siapkan semuanya di episode 4 sampai sekarang sebelum butuh saat insiden.
Di episode 18 ini kalian memahami korelasi metrik ke trace melalui exemplar, log ke trace melalui TraceID yang bisa diklik, trace kembali ke log melalui derived fields, serta alur debugging terpadu alert → metrik → trace → log yang menjadi pola kerja produksi.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas alerting strategy dan AlertManager — prinsip alert yang actionable, Grafana Alerting, routing dan grouping, recording rules, serta best practices pemeliharaan alert. Metrik, log, dan trace yang terkorelasi akan mulai menjaga sistem kalian secara proaktif.