This issue recommends koTime, a springboot project performance analysis tool that quickly locates performance bottlenecks by tracking method call links and runtime, and visually displays them.
project introduction
koTime is a springboot project performance analysis tool that quickly locates performance bottlenecks by tracking method invocation links and corresponding run times
Advantages:
Real-time monitoring method, statistics running time web display method call link, bottleneck visual tracking
Cons:
Due to the monitoring of each method in the project, there will be a little impact on the performance level, it is recommended to use in the development phase, and shut down after the system is stable
use
Introduce dependency
<dependency> <groupId>cn.langpy</groupId> <artifactId>ko-time</artifactId> <version>2.0.4</version> </dependency>
Configure it in the application.properties file
Mandatory configuration
ko-time.pointcut=execution(public * com.huoyo.. *. * (..) See aop’s @pointcut or FAQ on the left for the range of sections you need to monitor
Optional configuration (The following configuration is generally not required)
ko-time.enable=true # Whether to enable koTime. By default, koTime is enabled
ko-time.log-enable=false # Whether to enable control output. The default value is false
ko-time.log-language= english # Console output language (english/chinese) Default English
ko-time.threshold=800.0 # Indicates the time threshold, which is displayed on the front end. If the value is larger than the threshold, the value is displayed in red and the value is smaller than the threshold, and the value is 800 by default
ko-time.context-path=http://localhost:80 # context of the interface invoked on the front-end page. If the interface cannot be automatically obtained, you can manually configure the context in v2.0.1
ko-time.exception-enable=true # Whether to enable exception detection. The default value is false. After this function is enabled, statistics on exceptions thrown by the method are collected
ko-time.auth-enable=true # Whether to enable authentication. The default value is false. After this parameter is enabled, you need to log in to access the call link
ko-time.user-name=xxxx # Login user v2.0.2 Support started
ko-time.password=xxxx # Login password Supported from v2.0.2
interview
Attention:
1. After introducing the above dependencies and configurations, check to see if there are AOP-related packages in the project, koTime uses the @Aspect annotation, and introduces those that are not introduced, such as aspectj or spring-boot-starter-aop
2. After the previous steps are completed, koTime integration is complete and no other configuration is required
Start the project access /koTime path
If you just want to count a method, add @ComputeTime to the method, and the console will output the time
It is recommended to use Google Chrome or Edge browser, Internet Explorer is not likely to support
If the project is the custom of contextpath, access service such as http://localhost:8080/xxx/koTime
For example, it is defined in application.properties
server.servlet.context-path=/myservice, then the access path is
http://localhost:8080/myservice/koTime
If the page can be displayed properly but the method link cannot be obtained, configure ko-time.context-path=
http://localhost:8080/myservice
Visual display
1.
Interface call statistics
Determine the number of interfaces that need to be optimized based on the color. Red indicates to be optimized, and green indicates to be normal
2
. Interface list Overview
The running time of the interface is displayed in the list. If the value is green, you do not need to optimize the interface. If the value is red, you need to view the fault in detail
3.
Call details
When you open an interface, the calling link and running duration of the interface are displayed