Pernah buka dashboard log isinya cuma [INFO] Starting process... atau [DEBUG] Variable x = 7? Artikel dari Mike Shi ini menampar kebiasaan buruk developer yang hobi "menabur" log seperti konfeti, padahal itu cuma membakar uang dan mempersulit debugging.
🗑️ Masalah: Log Sampah & Biaya Mahal
💸 Membakar Uang: Kita membayar mahal vendor observability hanya untuk menyimpan "sampah digital". Log tanpa tujuan bukanlah observability, itu adalah littering (buang sampah sembarangan).
😵 Needle in a Haystack: Saat insiden terjadi di jam 3 pagi, root cause masalah malah tenggelam dalam ribuan baris log tidak penting.
📉 Inefisiensi: Unstructured log (teks bebas) memaksa sistem bekerja keras melakukan parsing saat query, bikin dashboard lemot dan mahal.
🛠️ Solusi: Log with Intent
🤔 The "Grep" Test: Sebelum menulis logger.info, tanya diri sendiri: "Apakah di masa depan gue bakal nge-grep (mencari) teks ini buat benerin bug?" Kalau nggak, hapus.
🧩 Context is King: Log "Error occurred" itu percuma. Tambahkan konteks: User ID, Request ID, input parameter. Wajib hubungkan log dengan Trace ID (OpenTelemetry) agar bisa dilacak perjalanan request-nya.
📊 Structured Logging: Tinggalkan teks bebas. Gunakan format terstruktur (JSON/Key-Value). Ini memungkinkan kita melihat pola masalah secara agregat, bukan cuma baca baris per baris.
⏱️ Metrics vs Logs: Jangan gunakan log untuk mengukur hal yang berulang ratusan kali per detik (misal: latency). Gunakan Metrics atau Spans. Biarkan log fokus pada detail kualitatif ("kenapa" error), bukan kuantitatif ("berapa" lama).
✅ Findings & Dampak
🔍 Pola > Baris: Dengan log terstruktur, kita bisa menjawab: "Error ini mulai melonjak setelah deploy jam berapa?" alih-alih menebak-nebak.
📉 Cost Reduction: Dengan memfilter log di level collector (sebelum dikirim ke storage), tagihan infrastruktur/vendor turun drastis.
🕵️ Bukti Forensik: Log berubah fungsi dari "jurnal harian developer" menjadi "barang bukti" yang solid untuk investigasi insiden.
💡 Key Takeaways
🚨 Disiplin Log Level: ERROR artinya manusia harus bertindak sekarang. WARN artinya pantau nanti. DEBUG seharusnya jarang keluar dari laptop developer.
🚰 Filter at Source: Gunakan fitur di SDK atau OpenTelemetry Collector untuk membuang log sampah di awal, jangan disimpan lalu difilter belakangan.
🤫 Less is More: Great logging bukan tentang menangkap semua kejadian, tapi menangkap apa yang penting.
👇 Diskusi Yuk!
Kalian tim mana? Tim "Log Semua Biar Aman (tapi boros)" atau Tim "Log Seperlunya (tapi takut ada info ilang)"?
Pernah nggak sih nge-debug berjam-jam cuma gara-gara log-nya isinya [INFO] processing... doang tanpa ada error detail? 🤬 Curhat di bawah! 👇
Sumber:
https://thenewstack.io/when-to-log-and-when-to-shut-up/
#DevOps #Observability #Logging #SoftwareEngineering #OpenTelemetry #Debugging #BackendDeveloper #TechTips #CloudCost