18 पॉइंट द्वारा GN⁺ 2025-02-21 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • एक ऐसा टूल जो Docker containers में होने वाले सभी network requests को trace करने में मदद करता है
    • यानी Wireshark की capabilities को container environment पर लागू करता है
  • इसके जरिए backend server के network traffic का real-time में analysis किया जा सकता है, और production environment की समस्याओं को ज्यादा तेजी से हल किया जा सकता है

प्रमुख फीचर्स

  • बिना किसी अलग configuration के तुरंत इस्तेमाल किया जा सकता है
    • backend server के run command के आगे सिर्फ subtrace run जोड़ना होता है
  • code modification की जरूरत नहीं
  • सभी programming languages का समर्थन (Python, Node.js, Go आदि)
  • request का पूरा payload, headers, status code, latency देखा जा सकता है
  • 100µs से कम performance overhead
  • Clickhouse आधारित
  • open source

Subtrace कैसे काम करता है

  • सभी network-related Linux system calls (syscall) को Seccomp BPF का उपयोग करके intercept करता है
  • TCP connections को proxy करके HTTP requests का analysis करता है, और उन्हें WebSocket के जरिए browser तक भेजता है
  • Chrome DevTools के network tab का उपयोग करके requests को visual रूप से देखा जा सकता है
  • Sentry या OpenTelemetry की तरह log-based approach नहीं, बल्कि real-time में सभी requests को वैसे के वैसे देखा जा सकता है

code contribution से जुड़ी बात

  • Subtrace open source है, लेकिन फिलहाल Pull Request स्वीकार नहीं करता
  • startup की प्रकृति के कारण इसे एक छोटे team द्वारा चलाया जा रहा है, और open source community को प्रभावी ढंग से manage करने की क्षमता अभी सीमित है
  • आगे चलकर यह policy बदल सकती है, और feature requests व bug reports हमेशा स्वागत योग्य हैं

2 टिप्पणियां

 
codemasterkimc 2025-02-21

लगता है Falco या linkerd से समस्या पकड़कर, ज़रूरत पड़ने पर subtrace से उसका विश्लेषण कर सकते हैं~ :)

 
GN⁺ 2025-02-21
Hacker News टिप्पणियाँ
  • दस्तावेज़ पढ़कर लगता है कि subtrace process सारा data server पर भेजता है। API keys और personal data संभालने वाले production environment में मैं ऐसा नहीं चाहूँगा
    • सोच रहा हूँ कि क्या इसे पूरी तरह self-hosted तरीके से चलाने का कोई तरीका है। अगर नहीं है, तो क्या इसकी कोई योजना है? यह भी जानना चाहूँगा कि self-hosting option को monetize कैसे करेंगे
  • Wireshark कहना थोड़ा भ्रामक है। यह browser के network tab में मिलने वाले "network inspector" के ज़्यादा करीब लगता है
    • यह काफ़ी उपयोगी लग रहा है, और मैं इसे ज़रूर आज़माऊँगा ताकि देख सकूँ कि इसे अपने toolbox में रखना है या नहीं
  • लगता है यह सिर्फ़ HTTP requests पर लागू होता है। अगर ऐसा है, तो Wireshark से तुलना उचित नहीं है
  • Docker networking में सबसे दर्दनाक debugging scenarios हमेशा non-TCP traffic से जुड़े होते हैं। फिर भी यह उपयोगी लगता है। जो बात समझ नहीं आती, वह यह है कि account token की ज़रूरत क्यों है। क्या subtrace को network connection चाहिए? यह सब कुछ local पर चलना चाहिए, और इस तरह के connection details को कभी भी host से बाहर नहीं जाना चाहिए
  • seccomp-आधारित interception के लिए बधाई। यह इस समस्या को हल करने का वाकई साफ़-सुथरा तरीका है। हमने mitmproxy में BPF_PROG_TYPE_CGROUP_SOCK eBPF के साथ कुछ दिलचस्प काम किया था, लेकिन container में वह बिल्कुल काम नहीं करता। यह देखना शानदार है कि सभी संबंधित system calls को intercept करना अच्छी तरह काम करता है
  • सोच रहा हूँ कि क्या यह TLS को decrypt कर सकता है। शायद आम library calls को hook करके यह संभव होगा
  • वीडियो देखकर लगता है कि dashboard sibtrace.dev पर hosted है। मैं जानना चाहता हूँ कि क्या मेरा data वहाँ भेजा जाता है। यह बिल्कुल स्वीकार्य नहीं होगा
  • मैंने इसे इस्तेमाल नहीं किया है, लेकिन जिज्ञासा है कि production में किसी खास request/session को debug कैसे करेंगे। क्या request trace ID जैसी किसी चीज़ से filter किया जा सकता है?
  • मैं हमेशा से ऐसा कोई tool चाहता था। अगली बार जब मुझे Docker container के traffic को inspect करना होगा, तो मैं इसे आज़माऊँगा