18 puan yazan GN⁺ 2025-02-21 | 2 yorum | WhatsApp'ta paylaş
  • Docker konteynerlerinde gerçekleşen tüm ağ isteklerini izlemeyi sağlayan bir araç
    • Wireshark’ın yeteneklerini konteyner ortamına taşıyor
  • Bu sayede backend sunucularının ağ trafiği gerçek zamanlı olarak analiz edilebilir ve prodüksiyon ortamındaki sorunlar daha hızlı çözülebilir

Başlıca özellikler

  • Ek yapılandırma gerektirmeden anında kullanılabilir
    • Backend sunucusunu çalıştırma komutunun başına yalnızca subtrace run eklemek yeterli
  • Kod değişikliği gerekmez
  • Tüm programlama dillerini destekler (Python, Node.js, Go vb.)
  • İsteklerin tam payload’ı, header’ları, durum kodları ve gecikme süreleri görülebilir
  • 100µs altında performans ek yükü
  • Clickhouse tabanlı
  • Açık kaynak

Subtrace nasıl çalışır

  • Ağla ilgili tüm Linux sistem çağrılarını (syscall) Seccomp BPF kullanarak yakalar
  • HTTP isteklerini analiz etmek için TCP bağlantılarını proxy’ler ve bunları WebSocket üzerinden tarayıcıya iletir
  • İstekler Chrome DevTools’un ağ sekmesi kullanılarak görsel olarak incelenebilir
  • Sentry veya OpenTelemetry gibi log tabanlı değildir; bunun yerine tüm istekler gerçek zamanlı olarak olduğu gibi görülebilir

Koda katkı ile ilgili

  • Subtrace açık kaynak olsa da şu anda Pull Request kabul etmiyor
  • Bunun nedeni, girişim yapısı gereği küçük bir ekiple yürütülmesi ve açık kaynak topluluğunu verimli şekilde yönetecek yeterli kapasitenin bulunmaması
  • Politika ileride değişebilir; özellik istekleri ve hata raporları ise her zaman memnuniyetle karşılanıyor

2 yorum

 
codemasterkimc 2025-02-21

Falco ya da linkerd ile sorunu tespit edip, gerekirse subtrace ile analiz edersek tamamdır sanırım~ :)

 
GN⁺ 2025-02-21
Hacker News yorumları
  • Belgeleri okuyunca subtrace sürecinin tüm verileri sunucuya gönderiyor gibi göründüğünü düşünüyorum. API anahtarları ve kişisel verilerle uğraşan production ortamlarında bunu istemem
    • Bunu tamamen self-hosted olarak çalıştırmanın bir yolu olup olmadığını merak ediyorum. Yoksa, böyle bir plan var mı? Self-hosted seçeneğini nasıl gelir modeline dönüştüreceğinizi de merak ediyorum
  • Wireshark biraz yanıltıcı olabilir. Tarayıcının ağ sekmesindeki bir "ağ denetleyicisine" daha yakın
    • Gerçekten faydalı görünüyor, araç kutuma ekleyip eklemeyeceğime karar vermek için kesinlikle deneyeceğim
  • Yalnızca HTTP istekleri için geçerli gibi görünüyor. Eğer öyleyse, Wireshark ile karşılaştırma uygun değil
  • Docker ağ yapısında en can sıkıcı hata ayıklama senaryoları her zaman TCP dışı trafiği ele alanlar oluyor. Yine de faydalı görünüyor. Anlamadığım şey neden bir hesap token'ı gerektiği. subtrace'in ağ bağlantısına ihtiyacı var mı? Bütün bunların yerelde çalışması gerekir ve bu tür bağlantı ayrıntıları asla host'u terk etmemeli
  • seccomp tabanlı interception için tebrikler. Bu sorunu çözmek için gerçekten temiz bir yöntem. mitmproxy'de BPF_PROG_TYPE_CGROUP_SOCK eBPF ile eğlenceli çalışmalar yaptık ama container içinde hiç çalışmıyor. İlgili tüm sistem çağrılarını intercept etmenin iyi çalıştığını görmek harika
  • TLS'nin çözülebilip çözülemediğini merak ediyorum. Muhtemelen yaygın kütüphane çağrılarını hook'layarak mümkün olur
  • Videoya bakınca dashboard'un sibtrace.dev üzerinde barındırılıyor gibi göründüğünü fark ettim. Verilerimin oraya gönderilip gönderilmediğini merak ediyorum. Bu kesinlikle kabul edilemez
  • Henüz denemedim ama merak ettiğim şey production'da belirli bir istek/oturumu nasıl debug ettiğiniz. İstek izleme kimliği gibi bir şeyle filtreleme yapılıp yapılamadığını merak ediyorum
  • Hep böyle bir araç istemiştim. Bir dahaki sefere Docker container trafiğini incelemem gerektiğinde deneyeceğim