πŸ›‘ 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