18 poin oleh GN⁺ 2025-02-21 | 2 komentar | Bagikan ke WhatsApp
  • Alat yang memungkinkan pelacakan semua permintaan jaringan yang terjadi di dalam kontainer Docker
    • Menerapkan fungsi Wireshark ke lingkungan kontainer
  • Dengan ini, trafik jaringan server backend dapat dianalisis secara real time, dan masalah di lingkungan produksi dapat diselesaikan lebih cepat

Fitur utama

  • Dapat langsung digunakan tanpa konfigurasi tambahan
    • Cukup tambahkan subtrace run di depan perintah menjalankan server backend
  • Tidak perlu mengubah kode
  • Mendukung semua bahasa pemrograman (Python, Node.js, Go, dll.)
  • Dapat memeriksa payload lengkap, header, kode status, dan latensi permintaan
  • Overhead performa di bawah 100µs
  • Berbasis Clickhouse
  • Open source

Cara kerja Subtrace

  • Mencegat semua system call Linux terkait jaringan dengan menggunakan Seccomp BPF
  • Memproksikan koneksi TCP untuk menganalisis permintaan HTTP, lalu mengirimkannya ke browser melalui WebSocket
  • Permintaan dapat dilihat secara visual dengan memanfaatkan tab Network di Chrome DevTools
  • Tidak berbasis log seperti Sentry atau OpenTelemetry yang sudah ada, melainkan memungkinkan melihat semua permintaan secara langsung secara real time

Terkait kontribusi kode

  • Subtrace bersifat open source, tetapi saat ini belum menerima Pull Request
  • Alasannya, sebagai startup, layanan ini dioperasikan oleh tim kecil dan belum memiliki kapasitas untuk mengelola komunitas open source secara efisien
  • Kebijakan ini dapat berubah di masa depan, dan permintaan fitur serta laporan bug selalu disambut

2 komentar

 
codemasterkimc 2025-02-21

Kalau menemukan masalah dengan Falco atau linkerd lalu menganalisisnya dengan subtrace saat diperlukan, berarti sudah cukup ya~ :)

 
GN⁺ 2025-02-21
Komentar Hacker News
  • Setelah membaca dokumentasinya, sepertinya proses subtrace mengirim semua data ke server. Saya tidak ingin itu terjadi di lingkungan produksi yang menangani API key dan data pribadi
    • Saya penasaran apakah ada cara untuk menjalankannya sepenuhnya dengan self-hosted. Jika belum ada, apakah itu direncanakan? Saya juga penasaran bagaimana opsi self-hosted akan dimonetisasi
  • Penyebutan Wireshark agak menyesatkan. Ini lebih mirip "inspektur jaringan" yang memakai network tab di browser
    • Terlihat sangat berguna, saya pasti akan mencobanya untuk melihat apakah layak masuk ke kotak peralatan saya
  • Sepertinya ini hanya berlaku untuk request HTTP. Kalau begitu, perbandingannya dengan Wireshark tidak tepat
  • Skenario debugging yang paling menyakitkan di Docker networking selalu berkaitan dengan traffic non-TCP. Meski begitu, ini tetap terlihat berguna. Yang tidak saya pahami adalah mengapa token akun diperlukan. Apakah subtrace memerlukan koneksi jaringan? Semua ini seharusnya berjalan secara lokal, dan detail koneksi semacam ini seharusnya tidak pernah keluar dari host
  • Selamat untuk intersepsi berbasis seccomp. Ini cara yang sangat rapi untuk menyelesaikan masalah ini. Kami pernah melakukan pekerjaan menarik di mitmproxy dengan eBPF BPF_PROG_TYPE_CGROUP_SOCK, tetapi itu sama sekali tidak bekerja di container. Keren melihat bahwa mengintersepsi semua system call terkait bekerja dengan baik
  • Saya penasaran apakah TLS bisa didekripsi. Mungkin bisa dengan melakukan hook pada pemanggilan library yang umum
  • Dari videonya, sepertinya dashboard di-host di sibtrace.dev. Saya penasaran apakah data saya dikirim ke sana. Itu jelas tidak boleh terjadi
  • Saya belum mencobanya, tetapi yang membuat saya penasaran adalah bagaimana cara men-debug request/sesi tertentu di produksi. Apakah bisa difilter menggunakan sesuatu seperti request trace ID
  • Saya selalu menginginkan alat seperti ini. Saat berikutnya saya harus memeriksa traffic dari container Docker, saya akan mencobanya