- Uma ferramenta que permite rastrear todas as requisições de rede que ocorrem em contêineres Docker
- Aplica os recursos do Wireshark ao ambiente de contêineres
- Com isso, é possível analisar em tempo real o tráfego de rede de servidores backend e resolver problemas em produção mais rapidamente
Principais recursos
- Pronto para uso imediato sem configuração adicional
- Basta adicionar
subtrace run antes do comando de execução do servidor backend
- Não requer alterações no código
- Suporte a todas as linguagens de programação (Python, Node.js, Go etc.)
- Permite verificar o payload completo da requisição, cabeçalhos, código de status e latência
- Overhead de desempenho inferior a 100µs
- Baseado em Clickhouse
- Open source
Como o Subtrace funciona
- Intercepta todas as chamadas de sistema (
syscall) relacionadas à rede no Linux usando Seccomp BPF
- Faz proxy das conexões TCP para analisar requisições HTTP e enviá-las ao navegador via WebSocket
- Permite visualizar as requisições usando a aba Network do Chrome DevTools
- Diferente de soluções baseadas em logs como Sentry ou OpenTelemetry, permite ver todas as requisições em tempo real exatamente como são
Sobre contribuições de código
- O Subtrace é open source, mas no momento não aceita Pull Requests
- Isso se deve ao fato de, como startup, ser operado por uma equipe pequena e não haver capacidade suficiente para gerenciar a comunidade open source de forma eficiente
- A política pode mudar no futuro, e solicitações de recursos e relatórios de bugs são sempre bem-vindos
2 comentários
Dá para descobrir o problema com o Falco ou o linkerd e, se necessário, analisar com o subtrace~ :)
Comentários no Hacker News
BPF_PROG_TYPE_CGROUP_SOCK, mas isso não funciona de jeito nenhum em contêineres. É legal ver que interceptar todas as syscalls relevantes funciona bem