🛑 Stop Nyampah di Log Server! Seni “Diam” dalam Observability



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

Leave a Comment