Ferramenta de diagnóstico para Java que permite investigar aplicações JVM em execução, sem alterar o código nem reiniciar o servidor.
LinShunKang/MyPerf4J
Ferramenta de APM de alto desempenho para Java que coleta métricas de métodos e da JVM por meio de um Java agent, sem exigir alterações no código da aplicação.
- Estrelas
- 3,570
- Forks
- 551
- Issues abertas
- 6
- Último commit
- há 3 meses
O que é?
MyPerf4J é uma ferramenta de monitoramento de desempenho e estatísticas de aplicações Java, voltada a serviços de alta concorrência e baixa latência. Ela se conecta à JVM por meio de um JavaAgent baseado em instrumentação de bytecode com ASM, permitindo registrar os tempos de resposta dos métodos sem alterações no código da aplicação. As métricas incluem RPS, contagem, média, mínimo, máximo, desvio padrão e percentis TP (de TP50 a TP100) por método, além de métricas de threads, memória, GC, classes, compilação e descritores de arquivo da JVM.
As estatísticas são agregadas em intervalos de um segundo, e o projeto afirma que todas as chamadas são contabilizadas, sem amostragem. Os resultados são gravados em arquivos de log, e o projeto oferece configuração para enviá-los ao InfluxDB, com dashboards do Grafana. A configuração usa um arquivo properties e dois argumentos da JVM; no JDK 9 ou posterior, também é necessário passar uma flag --add-opens.
O projeto é licenciado sob BSD-3-Clause e também pode ser compilado a partir do código-fonte com Maven.
Recursos principais
- 01Conecta-se por meio de JavaAgent, sem alterações no código da aplicação
- 02Métricas por método, incluindo RPS, média, máximo e percentis de TP50 a TP100
- 03Métricas da JVM sobre threads, memória, GC, classes, compilação e descritores de arquivo
- 04Estatísticas em intervalos de um segundo, com registro de todas as chamadas
- 05Saída em arquivos de log, com integração com InfluxDB e Grafana
Casos de uso
- Encontrar métodos lentos em um microsserviço Java sob carga de produção
- Monitorar ao longo do tempo o comportamento da memória, do GC e das threads da JVM
- Criar dashboards do Grafana para acompanhar o desempenho de serviços Java
Início rápido
- 1
Baixe e descompacte MyPerf4J-ASM.zip e, em seguida, edite MyPerf4J.properties
- 2
Adicione o Java agent e o arquivo properties aos argumentos de inicialização da JVM
java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar - 3
Inicie o app e verifique se há saída em /path/to/log/method_metrics.log
Antes de usar
- A configuração exige a edição de um arquivo properties e das opções de inicialização da JVM.
- No JDK 9 ou posterior, é necessária a opção adicional --add-opens java.base/java.lang=ALL-UNNAMED.
Em coleções
Tópicos
Perguntas frequentes
- O que é MyPerf4J?
- Ferramenta de APM de alto desempenho para Java que coleta métricas de métodos e da JVM por meio de um Java agent, sem exigir alterações no código da aplicação. MyPerf4J é uma ferramenta de monitoramento de desempenho e estatísticas de aplicações Java, voltada a serviços de alta concorrência e baixa latência. Ela se conecta à JVM por meio de um JavaAgent baseado em instrumentação de bytecode com ASM, permitindo registrar os tempos de resposta dos métodos sem alterações no código da aplicação. As métricas incluem RPS, contagem, média, mínimo, máximo, desvio padrão e percentis TP (de TP50 a TP100) por método, além de métricas de threads, memória, GC, classes, compilação e descritores de arquivo da JVM.
- MyPerf4J é gratuito? Qual é a licença?
- MyPerf4J é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- MyPerf4J ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de MyPerf4J foi em 31 de jul. de 2026.
- Para que posso usar MyPerf4J?
- Encontrar métodos lentos em um microsserviço Java sob carga de produção Monitorar ao longo do tempo o comportamento da memória, do GC e das threads da JVM Criar dashboards do Grafana para acompanhar o desempenho de serviços Java
- Como instalar MyPerf4J?
- Baixe e descompacte MyPerf4J-ASM.zip e, em seguida, edite MyPerf4J.properties Adicione o Java agent e o arquivo properties aos argumentos de inicialização da JVM: java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar Inicie o app e verifique se há saída em /path/to/log/method_metrics.log
- Onde consigo MyPerf4J?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/LinShunKang/MyPerf4J
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca gratuita de cobertura de código Java que mede quais partes do bytecode Java são exercitadas pelos testes.
Biblioteca oficial de cliente Go da Datadog para tracing de APM, profiling contínuo e monitoramento de segurança de aplicações.
Um contêiner de sandbox para JVM que adiciona AOP não invasivo em tempo de execução a aplicações Java em execução, sem reiniciá-las.
Profiler de amostragem de baixo overhead para Java, que captura perfis de CPU, alocações, locks e memória nativa sem viés de safepoint.
Observabilidade sem alterações no código para aplicações cloud-native e de IA, com coleta de métricas, traces, logs de requisições e perfis via eBPF e Wasm.