Herramienta de diagnóstico para Java que permite investigar en vivo aplicaciones JVM en ejecución, sin cambiar el código ni reiniciarlas.
LinShunKang/MyPerf4J
Herramienta APM de alto rendimiento para Java que recopila métricas de métodos y de la JVM mediante un Java agent, sin modificar el código de la aplicación.
- Estrellas
- 3,570
- Forks
- 551
- Issues abiertos
- 6
- Último commit
- hace 3 meses
¿Qué es?
MyPerf4J es una herramienta de estadísticas y monitorización del rendimiento de aplicaciones Java, pensada para servicios con alta concurrencia y baja latencia. Se conecta a la JVM mediante un JavaAgent basado en instrumentación de bytecode con ASM, por lo que puede registrar los tiempos de respuesta de los métodos sin modificar el código de la aplicación. Las métricas incluyen RPS, cantidad de llamadas, promedio, mínimo, máximo, desviación estándar y percentiles TP (de TP50 a TP100) por método, además de métricas de la JVM sobre hilos, memoria, GC, clases, compilación y descriptores de archivo.
Las estadísticas se agregan con una granularidad de un segundo y, según el proyecto, se cuenta cada llamada en lugar de tomar muestras. Los resultados se escriben en archivos de registro, y el proyecto ofrece configuración para enviarlos a InfluxDB y usar dashboards de Grafana. La configuración requiere un archivo properties y dos argumentos de la JVM; en JDK 9 y versiones posteriores, también se necesita el flag --add-opens.
El proyecto cuenta con licencia BSD-3-Clause y también se puede compilar desde el código fuente con Maven.
Funciones clave
- 01Se conecta mediante JavaAgent sin modificar el código de la aplicación
- 02Métricas por método, como RPS, promedio, máximo y percentiles de TP50 a TP100
- 03Métricas de la JVM sobre hilos, memoria, GC, clases, compilación y descriptores de archivo
- 04Estadísticas con granularidad de un segundo y registro de cada llamada
- 05Salida en archivos de registro e integración con InfluxDB y Grafana
Casos de uso
- Encontrar métodos lentos en un microservicio Java bajo carga de producción
- Supervisar a lo largo del tiempo el comportamiento de la memoria, el GC y los hilos de la JVM
- Crear dashboards de Grafana para el rendimiento de servicios Java
Inicio rápido
- 1
Descarga y descomprime MyPerf4J-ASM.zip; después, edita MyPerf4J.properties
- 2
Añade el Java agent y el archivo properties a los argumentos de inicio de la JVM
java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar - 3
Inicia la aplicación y comprueba si hay resultados en /path/to/log/method_metrics.log
Antes de usarlo
- La configuración requiere editar un archivo properties y las opciones de inicio de la JVM.
- En JDK 9 y versiones posteriores, se requiere la opción adicional --add-opens java.base/java.lang=ALL-UNNAMED.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es MyPerf4J?
- Herramienta APM de alto rendimiento para Java que recopila métricas de métodos y de la JVM mediante un Java agent, sin modificar el código de la aplicación. MyPerf4J es una herramienta de estadísticas y monitorización del rendimiento de aplicaciones Java, pensada para servicios con alta concurrencia y baja latencia. Se conecta a la JVM mediante un JavaAgent basado en instrumentación de bytecode con ASM, por lo que puede registrar los tiempos de respuesta de los métodos sin modificar el código de la aplicación. Las métricas incluyen RPS, cantidad de llamadas, promedio, mínimo, máximo, desviación estándar y percentiles TP (de TP50 a TP100) por método, además de métricas de la JVM sobre hilos, memoria, GC, clases, compilación y descriptores de archivo.
- ¿MyPerf4J es gratuito? ¿Qué licencia tiene?
- MyPerf4J es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿MyPerf4J sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de MyPerf4J fue el 31 jul 2026.
- ¿Para qué puedo usar MyPerf4J?
- Encontrar métodos lentos en un microservicio Java bajo carga de producción Supervisar a lo largo del tiempo el comportamiento de la memoria, el GC y los hilos de la JVM Crear dashboards de Grafana para el rendimiento de servicios Java
- ¿Cómo se instala MyPerf4J?
- Descarga y descomprime MyPerf4J-ASM.zip; después, edita MyPerf4J.properties Añade el Java agent y el archivo properties a los argumentos de inicio de la JVM: java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar Inicia la aplicación y comprueba si hay resultados en /path/to/log/method_metrics.log
- ¿Dónde consigo MyPerf4J?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/LinShunKang/MyPerf4J
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca gratuita de cobertura de código Java que mide qué partes del bytecode de Java ejecutan las pruebas.
Biblioteca oficial de cliente Go de Datadog para trazas APM, profiling continuo y monitorización de la seguridad de aplicaciones.
Un contenedor sandbox para JVM que añade AOP no invasivo en tiempo de ejecución a aplicaciones Java activas, sin reiniciarlas.
Profiler de muestreo de bajo impacto para Java que captura perfiles de CPU, asignaciones, bloqueos y memoria nativa sin sesgo de safepoints.
Observabilidad sin instrumentación de código para aplicaciones cloud-native y de IA, con eBPF y Wasm para recopilar métricas, trazas, logs de solicitudes y perfiles.