Suíte open source de tracing e profiling com SDKs, daemons de sistema e uma interface web para analisar traces no Android, Linux e Chromium.
janestreet/magic-trace
Profiler para Linux que usa Intel Processor Trace para registrar todas as chamadas de função de um processo e exibi-las em uma linha do tempo interativa.
- Estrelas
- 6,347
- Forks
- 223
- Issues abertas
- 73
- Último commit
- há 18 dias
O que é?
magic-trace coleta e exibe traces de alta resolução do que um processo está fazendo. Em vez de amostrar pilhas de chamadas em intervalos, como o perf, ele usa Intel Processor Trace para manter um buffer circular com todo o fluxo de controle e, em seguida, captura esse buffer em um momento escolhido. A captura é reconstruída em uma linha do tempo interativa de pilhas de chamadas que, por padrão, abrange aproximadamente os últimos 10 ms, com chamadas de função resolvidas em cerca de 40 ns.
Você pode se conectar a um processo em execução e se desconectar com Ctrl+C para capturar o fim da execução, ou definir um gatilho para que uma captura seja feita sempre que uma função especificada for chamada. Os traces são gravados em arquivos trace.fxt.gz e abertos no visualizador magic-trace.org, que roda no navegador e é um fork do Perfetto. A ferramenta não exige alterações na aplicação e, segundo informado, adiciona de 2% a 10% de overhead.
É necessário usar uma CPU Intel Skylake ou posterior, e a ferramenta roda somente no Linux. A maioria das máquinas virtuais não é compatível.
Recursos principais
- 01Registra todas as chamadas de função de um processo com resolução de cerca de 40 ns.
- 02Usa Intel Processor Trace para capturar um buffer circular do fluxo de controle, em vez de fazer amostragem.
- 03Conecta-se a um processo em execução sem exigir alterações na aplicação.
- 04Dispara capturas quando uma função escolhida é chamada ou ao se desconectar.
- 05O visualizador roda no navegador e não faz upload dos traces.
Casos de uso
- Descobrir por que algumas requisições em produção são lentas, enquanto muitas outras são rápidas.
- Ver qual código realmente é executado em um caminho crítico, em vez de confiar no que se presume que seja executado.
- Analisar a sequência de chamadas que levou a uma falha.
- Investigar o que acontece entre dois pontos de um programa de longa execução, como um ciclo do scheduler ou uma passagem do GC.
Início rápido
- 1
Baixe o binário ou pacote da versão na página da versão mais recente
- 2
Torne o binário pré-compilado executável
chmod +x magic-trace - 3
Instale o pacote .deb baixado
sudo dpkg -i magic-trace*.deb - 4
Verifique a instalação exibindo o texto de ajuda
magic-trace -help
Antes de usar
- Compatível apenas com Linux e requer uma CPU Intel (Skylake ou posterior).
- A maioria das máquinas virtuais não é compatível.
Em coleções
Tópicos
Perguntas frequentes
- O que é magic-trace?
- Profiler para Linux que usa Intel Processor Trace para registrar todas as chamadas de função de um processo e exibi-las em uma linha do tempo interativa. magic-trace coleta e exibe traces de alta resolução do que um processo está fazendo. Em vez de amostrar pilhas de chamadas em intervalos, como o perf, ele usa Intel Processor Trace para manter um buffer circular com todo o fluxo de controle e, em seguida, captura esse buffer em um momento escolhido. A captura é reconstruída em uma linha do tempo interativa de pilhas de chamadas que, por padrão, abrange aproximadamente os últimos 10 ms, com chamadas de função resolvidas em cerca de 40 ns.
- magic-trace é gratuito? Qual é a licença?
- magic-trace é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- magic-trace ainda é mantido?
- Manutenção ativa. O último commit de magic-trace foi em 19 de out. de 2026.
- Para que posso usar magic-trace?
- Descobrir por que algumas requisições em produção são lentas, enquanto muitas outras são rápidas. Ver qual código realmente é executado em um caminho crítico, em vez de confiar no que se presume que seja executado. Analisar a sequência de chamadas que levou a uma falha. Investigar o que acontece entre dois pontos de um programa de longa execução, como um ciclo do scheduler ou uma passagem do GC.
- Como instalar magic-trace?
- Baixe o binário ou pacote da versão na página da versão mais recente Torne o binário pré-compilado executável: chmod +x magic-trace Instale o pacote .deb baixado: sudo dpkg -i magic-trace*.deb Verifique a instalação exibindo o texto de ajuda: magic-trace -help
- Onde consigo magic-trace?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/janestreet/magic-trace
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Toolkit que empacota programas eBPF como Gadgets em imagens OCI para coletar e inspecionar dados do sistema em clusters Kubernetes e hosts Linux.
Um tracer de Python de baixo overhead que registra chamadas de função e visualiza a execução do código em uma linha do tempo interativa.
Profiler de pilha de chamadas para Python que mostra onde seu código gasta tempo, com saídas no console, em HTML e em outros formatos.
Daemon leve de telemetria que exporta métricas de Linux, CPU, GPU e treinamento com PyTorch e dispara traces sob demanda.
Linguagem e ferramenta de tracing de alto nível para Linux que usa eBPF para rastrear eventos do kernel e do espaço de usuário com sobrecarga mínima.