简体中文 | English
A high performance, non-intrusive Java performance monitoring and statistical tool designed for high-concurrency, low-latency applications.
- High performance: Very low performance consumption, only 63 nano seconds per record, can be used in production environment for a long time.
- No intrusion: Using JavaAgent mode, no intrusion to the application, no need to modify the application code.
- Low memory: With memory multiplexing, only a small number of temporary objects are generated throughout the life cycle, and the GC of the application is not affected.
- Real-time: Supports second level monitoring, minimum 1 second
- Quickly locate performance bottlenecks for Java applications in a development environment
- Long-term monitoring of performance metrics for Java applications in a production environment
MyPerf4J collects dozens of metrics per application. All these metrics are collected and visualized in real-time.
This is a list of what it currently monitors:
Want to know how to achieve the above effect? Please start the application according to the description of Quick Start, and then follow the instructions in here to install and configure.
MyPerf4J adopts JavaAgent configuration mode, transparent access application, and the application code is completely no-intrusive.
- Download and unzip MyPerf4J-ASM.zip
- Read the
README
file - Modify
app_name
,metrics.log.xxx
andfilter.packages.include
inMyPerf4J.properties
Add the following two parameters to the JVM startup parameters
- -javaagent:/path/to/MyPerf4J-ASM.jar
- -DMyPerf4JPropFile=/path/to/MyPerf4J.properties
Like: java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties
-jar yourApp.jar
Start your application, the output is to /path/to/log/method_metrics.log:
MyPerf4J Method Metrics [2020-01-01 12:49:57, 2020-01-01 12:49:58]
Method[6] Type Level TimePercent RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999
DemoServiceImpl.getId2(long) General Service 322.50% 6524 0.49 0 1 0.50 6524 0 1 1 1 1 1
DemoServiceImpl.getId3(long) General Service 296.10% 4350 0.68 0 1 0.47 4350 1 1 1 1 1 1
DemoServiceImpl.getId4(long) General Service 164.60% 2176 0.76 0 1 0.43 2176 1 1 1 1 1 1
DemoServiceImpl.getId1(long) General Service 0.00% 8704 0.00 0 0 0.00 8704 0 0 0 0 0 0
DemoDAO.getId1(long) DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0
DemoDAO.getId2() DynamicProxy DAO 0.00% 2176 0.00 0 0 0.00 2176 0 0 0 0 0 0
Remove the following two parameters from the JVM startup parameters and restart to uninstall the tool.
- -javaagent:/path/to/MyPerf4J-ASM.jar
- -DMyPerf4JPropFile=/path/to/MyPerf4J.properties
You can build MyPerf4J-ASM.jar by yourself.
- git clone git@github.com:LinShunKang/MyPerf4J.git
- mvn clean package
MyPerf4J-ASM-${MyPerf4J-version}.jar at MyPerf4J-ASM/target/
If you encounter any issues or if you have a question, don't hesitate to create an issue or send email : )
Welcome to register the company name in this issue: LinShunKang#30 (In order of registration)
Thanks JetBrains support provided by OpenSourceSupport : )
For more information about the project, please read https://github.com/LinShunKang/MyPerf4J/wiki/English-Doc.