- Ein Tool, mit dem sich alle Netzwerk-Anfragen verfolgen lassen, die in Docker-Containern entstehen
- Überträgt die Funktionen von Wireshark auf Container-Umgebungen
- Damit lässt sich der Netzwerk-Traffic von Backend-Servern in Echtzeit analysieren, wodurch sich Probleme in Produktionsumgebungen schneller beheben lassen
Hauptfunktionen
- Sofort ohne zusätzliche Konfiguration einsatzbereit
- Es reicht, vor den Startbefehl des Backend-Servers
subtrace run zu setzen
- Keine Code-Änderungen erforderlich
- Unterstützt alle Programmiersprachen (Python, Node.js, Go usw.)
- Vollständige Payloads, Header, Status-Codes und Latenzen von Anfragen einsehbar
- Performance-Overhead unter 100 µs
- Auf ClickHouse basierend
- Open Source
So funktioniert Subtrace
- Fängt alle netzwerkbezogenen Linux-Systemaufrufe (
syscall) mit Seccomp BPF ab
- Proxyt TCP-Verbindungen, analysiert HTTP-Anfragen und überträgt sie per WebSocket an den Browser
- Anfragen lassen sich visuell über den Netzwerk-Tab der Chrome DevTools prüfen
- Anders als bei logbasierten Lösungen wie Sentry oder OpenTelemetry lassen sich alle Anfragen in Echtzeit unverändert einsehen
Zur Mitwirkung am Code
- Subtrace ist Open Source, nimmt derzeit aber keine Pull Requests an
- Der Grund ist, dass das Startup als kleines Team arbeitet und derzeit nicht die Kapazität hat, die Open-Source-Community effizient zu betreuen
- Die Richtlinie kann sich künftig ändern; Feature-Requests und Bug-Reports sind jedoch jederzeit willkommen
2 Kommentare
Man entdeckt Probleme wohl mit Falco oder linkerd und analysiert sie bei Bedarf dann mit subtrace~ :)
Hacker-News-Kommentare
subtrace-Prozess alle Daten an den Server senden. In einer Produktionsumgebung, in der mit API-Schlüsseln und persönlichen Daten gearbeitet wird, möchte ich das nichtsubtraceeine Netzwerkverbindung? Das alles sollte lokal laufen, und solche Verbindungsdetails sollten den Host niemals verlassenmitmproxyinteressante Arbeit mitBPF_PROG_TYPE_CGROUP_SOCKeBPF gemacht, aber in Containern funktioniert das überhaupt nicht. Es ist cool zu sehen, dass das Abfangen aller relevanten System-Calls gut funktioniert