Digital Transformation
Distributed Tracing (Pelacakan Permintaan Lintas Layanan)
Distributed tracing adalah teknik observability yang melacak satu permintaan saat melewati banyak layanan microservice, menyajikan timeline lengkap untuk debugging latensi dan error.
TL;DR: Distributed tracing memberi peta perjalanan satu permintaan pengguna saat melintasi puluhan layanan backend, dari API gateway sampai database. Setiap segmen dicatat sebagai span dengan durasi, status, dan metadata. Tools populer: OpenTelemetry, Jaeger, Datadog APM. Tracing wajib untuk arsitektur dengan banyak layanan terkoneksi via API.
Apa itu Distributed Tracing?
Saat satu klik di mobile app memicu lima sampai dua puluh panggilan internal antar layanan, log biasa tidak cukup untuk menemukan layanan mana yang lambat atau gagal. Distributed tracing menyatukan semua panggilan itu di bawah satu trace ID, sehingga developer bisa melihat waterfall lengkap dalam satu UI. Konsep ini dipopulerkan paper Google Dapper pada 2010, dan sekarang menjadi pilar observability modern.
Komponen Utama
| Istilah | Arti |
|---|---|
| Trace | Seluruh perjalanan satu permintaan dari awal sampai selesai |
| Span | Satu unit kerja, biasanya satu pemanggilan layanan atau fungsi |
| Trace ID | Identitas unik yang dibawa di header antar layanan |
| Context propagation | Mekanisme meneruskan trace ID lewat HTTP atau message queue |
Standar industri saat ini adalah OpenTelemetry, proyek CNCF yang menyatukan API tracing, metrics, dan logs sehingga vendor backend bisa diganti tanpa rewrite kode instrumentasi.
Kenapa Penting?
Untuk SaaS Indonesia yang melayani pengguna lintas pulau dengan latensi jaringan beragam, distributed tracing memangkas waktu mean time to resolve insiden produksi 40-70% dibanding hanya pakai log. Dari pengamatan Vito Atmo di proyek backend Atmo (LMS internal), sebagian besar regression latensi ternyata disebabkan oleh layanan dependensi yang tidak terlihat di log aplikasi utama. Tracing membuat layanan tersembunyi itu kelihatan.
Pertanyaan Umum
Apakah distributed tracing menambah latensi?
Overhead biasanya 1-5% jika menggunakan sampling. Sampling 100% hanya disarankan untuk environment staging atau debugging spesifik.
Apa beda tracing dengan logging?
Logging mencatat peristiwa diskrit per layanan, sedangkan tracing menghubungkan semua peristiwa terkait satu permintaan menjadi satu timeline yang berurutan.
Istilah Terkait