Skip to content

Commit 1226340

Browse files
authored
Merge pull request dingjs#1 from fanzhongwei/feature/添加pct统计功能和日志分析工具
Feature/添加pct统计功能和日志分析工具
2 parents aa1cea6 + c9dcb84 commit 1226340

File tree

378 files changed

+4348
-79
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

378 files changed

+4348
-79
lines changed

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ target/maven-archiver/pom.properties
1515
*.prefs
1616
*.project
1717
.classpath
18-
/target
18+
target
1919
/.settings
20-
/.idea
20+
.idea
2121
*.log
22+
dependency-reduced-pom.xml
2223

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ agent.exclude.class.regex=
2121
agent.log.avg.execute.time=false
2222
# 记录方法的耗时时是采用nanoTime,还是currentTimeMillis,nanoTime更准确,但是会耗时一些
2323
agent.log.nano=true
24+
# 是否统计方法执行时间百分比,同JMeter性能测试百分比计算方式,如果开启默认会统计最大值、最小值
25+
agent.log.stat.execute.time=false
26+
# 方法执行时间统计百分比(agent.log.stat.execute.time=true时有效),多选范围[0, 1],例如:0.5,0.9,0.95,0.99
27+
agent.log.stat.execute.time.pct=0.5,0.9,0.95,0.99
2428
```
2529

2630
## agent日志分析器使用

agent-analyer/agent-analyzer.iml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="web" name="Web">
5+
<configuration>
6+
<webroots>
7+
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
8+
</webroots>
9+
</configuration>
10+
</facet>
11+
<facet type="jpa" name="JPA">
12+
<configuration>
13+
<setting name="validation-enabled" value="true" />
14+
<setting name="provider-name" value="Hibernate" />
15+
<datasource-mapping>
16+
<factory-entry name="agent-analyzer" />
17+
</datasource-mapping>
18+
<naming-strategy-map />
19+
</configuration>
20+
</facet>
21+
<facet type="Spring" name="Spring">
22+
<configuration />
23+
</facet>
24+
</component>
25+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
26+
<output url="file://$MODULE_DIR$/target/classes" />
27+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
28+
<content url="file://$MODULE_DIR$">
29+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
30+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
31+
<excludeFolder url="file://$MODULE_DIR$/target" />
32+
</content>
33+
<orderEntry type="inheritedJdk" />
34+
<orderEntry type="sourceFolder" forTests="false" />
35+
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.24" level="project" />
36+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.6.7" level="project" />
37+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.6.7" level="project" />
38+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.6.7" level="project" />
39+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.7" level="project" />
40+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.7" level="project" />
41+
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
42+
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.11" level="project" />
43+
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
44+
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
45+
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
46+
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
47+
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.19" level="project" />
48+
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.19" level="project" />
49+
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.29" level="project" />
50+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.6.7" level="project" />
51+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.13.2.1" level="project" />
52+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.2" level="project" />
53+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.13.2" level="project" />
54+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2" level="project" />
55+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2" level="project" />
56+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2" level="project" />
57+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.6.7" level="project" />
58+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.62" level="project" />
59+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.62" level="project" />
60+
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.62" level="project" />
61+
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.19" level="project" />
62+
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.19" level="project" />
63+
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.19" level="project" />
64+
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.19" level="project" />
65+
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.19" level="project" />
66+
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.19" level="project" />
67+
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
68+
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83" level="project" />
69+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.6.7" level="project" />
70+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.6.7" level="project" />
71+
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
72+
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.6.7" level="project" />
73+
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
74+
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.19" level="project" />
75+
<orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" />
76+
<orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" />
77+
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.6.8.Final" level="project" />
78+
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.3.Final" level="project" />
79+
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.11.22" level="project" />
80+
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
81+
<orderEntry type="library" name="Maven: org.jboss:jandex:2.4.2.Final" level="project" />
82+
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
83+
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
84+
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.6" level="project" />
85+
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
86+
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.6" level="project" />
87+
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
88+
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
89+
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.6.4" level="project" />
90+
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.6.4" level="project" />
91+
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.3.19" level="project" />
92+
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.19" level="project" />
93+
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
94+
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.19" level="project" />
95+
<orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" />
96+
<orderEntry type="library" name="Maven: commons-io:commons-io:2.15.1" level="project" />
97+
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
98+
</component>
99+
</module>

agent-analyer/pom.xml

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.wenshuo</groupId>
6+
<artifactId>agent-analyzer</artifactId>
7+
<version>1.0.0</version>
8+
<packaging>war</packaging>
9+
10+
<name>agent日志分析器</name>
11+
12+
<properties>
13+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14+
<java.version>1.8</java.version>
15+
<springboot.version>2.6.7</springboot.version>
16+
<fastjson.version>1.2.83</fastjson.version>
17+
<commons-io.version>2.15.1</commons-io.version>
18+
</properties>
19+
20+
<dependencyManagement>
21+
<dependencies>
22+
<dependency>
23+
<!-- Import dependency management from Spring Boot -->
24+
<groupId>org.springframework.boot</groupId>
25+
<artifactId>spring-boot-dependencies</artifactId>
26+
<version>${springboot.version}</version>
27+
<type>pom</type>
28+
<scope>import</scope>
29+
</dependency>
30+
</dependencies>
31+
</dependencyManagement>
32+
33+
<dependencies>
34+
<dependency>
35+
<groupId>org.projectlombok</groupId>
36+
<artifactId>lombok</artifactId>
37+
</dependency>
38+
<dependency>
39+
<groupId>org.springframework.boot</groupId>
40+
<artifactId>spring-boot-starter-web</artifactId>
41+
</dependency>
42+
<dependency>
43+
<groupId>org.apache.commons</groupId>
44+
<artifactId>commons-lang3</artifactId>
45+
</dependency>
46+
47+
<!-- <dependency>-->
48+
<!-- <groupId>net.sourceforge.cglib</groupId>-->
49+
<!-- <artifactId>com.springsource.net.sf.cglib</artifactId>-->
50+
<!-- <version>2.2.0</version>-->
51+
<!-- </dependency>-->
52+
<!-- 格式化对象,方便输出日志 -->
53+
<dependency>
54+
<groupId>com.alibaba</groupId>
55+
<artifactId>fastjson</artifactId>
56+
<version>${fastjson.version}</version>
57+
</dependency>
58+
<!-- spring data jpa -->
59+
<dependency>
60+
<groupId>org.springframework.boot</groupId>
61+
<artifactId>spring-boot-starter-data-jpa</artifactId>
62+
</dependency>
63+
64+
<dependency>
65+
<groupId>com.h2database</groupId>
66+
<artifactId>h2</artifactId>
67+
<scope>runtime</scope>
68+
</dependency>
69+
70+
<dependency>
71+
<groupId>commons-io</groupId>
72+
<artifactId>commons-io</artifactId>
73+
<version>${commons-io.version}</version>
74+
</dependency>
75+
<dependency>
76+
<groupId>commons-logging</groupId>
77+
<artifactId>commons-logging</artifactId>
78+
<version>1.2</version>
79+
<scope>compile</scope>
80+
</dependency>
81+
</dependencies>
82+
83+
<build>
84+
<finalName>agent-analyzer</finalName>
85+
<resources>
86+
<resource>
87+
<directory>src/main/java</directory>
88+
<includes>
89+
<include>**/*.xml</include>
90+
</includes>
91+
</resource>
92+
<resource>
93+
<directory>${basedir}/src/main/webapp</directory>
94+
<targetPath>META-INF/resources</targetPath>
95+
<includes>
96+
<include>**/**</include>
97+
</includes>
98+
</resource>
99+
<resource>
100+
<directory>src/main/resources</directory>
101+
<filtering>false</filtering>
102+
<excludes>
103+
<exclude>.gitkeep</exclude>
104+
</excludes>
105+
<includes>
106+
<include>**</include>
107+
</includes>
108+
</resource>
109+
</resources>
110+
<plugins>
111+
<plugin>
112+
<groupId>org.apache.maven.plugins</groupId>
113+
<artifactId>maven-compiler-plugin</artifactId>
114+
<version>3.8.1</version>
115+
<configuration>
116+
<source>${java.version}</source>
117+
<target>${java.version}</target>
118+
</configuration>
119+
</plugin>
120+
<plugin>
121+
<groupId>org.springframework.boot</groupId>
122+
<artifactId>spring-boot-maven-plugin</artifactId>
123+
<version>${springboot.version}</version>
124+
<executions>
125+
<execution>
126+
<goals>
127+
<goal>repackage</goal>
128+
</goals>
129+
</execution>
130+
</executions>
131+
<configuration>
132+
<mainClass>com.wenshuo.agent.analyzer.AgentAnalyzer</mainClass>
133+
<fork>true</fork>
134+
</configuration>
135+
</plugin>
136+
</plugins>
137+
</build>
138+
</project>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.wenshuo.agent.analyzer;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
* agent日志分析
8+
*
9+
* @date 2024/09/06 13:52
10+
**/
11+
@SpringBootApplication
12+
13+
public class AgentAnalyzer {
14+
public static void main(String[] args) {
15+
SpringApplication.run(AgentAnalyzer.class, args);
16+
}
17+
18+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.wenshuo.agent.analyzer.bean;
2+
3+
import com.alibaba.fastjson.annotation.JSONField;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.util.Date;
9+
import java.util.UUID;
10+
import javax.persistence.Entity;
11+
import javax.persistence.GeneratedValue;
12+
import javax.persistence.Id;
13+
import javax.persistence.Table;
14+
15+
/**
16+
* @date 2024/09/06 14:05
17+
**/
18+
@Entity
19+
@Table(name = "T_AGENT_LOG")
20+
@Data
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
public class AgentLogDO {
24+
25+
@Id
26+
@GeneratedValue
27+
private UUID id;
28+
29+
private Date startTime;
30+
31+
private Date endTime;
32+
33+
@JSONField(name = "class")
34+
private String className;
35+
36+
private String methodName;
37+
38+
private Long counter;
39+
40+
private Long time;
41+
42+
private Long avg;
43+
44+
private Long min;
45+
46+
private Long max;
47+
48+
private Long median;
49+
50+
private Long th90Pct;
51+
52+
private Long th95Pct;
53+
54+
private Long th99Pct;
55+
56+
private String version;
57+
58+
private String day;
59+
60+
private String startAndEnd;
61+
62+
private String fileName;
63+
64+
private String timeCut;
65+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.wenshuo.agent.analyzer.bean;
2+
3+
import com.alibaba.fastjson.annotation.JSONField;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.util.Date;
9+
10+
/**
11+
* @date 2024/09/06 14:09
12+
**/
13+
@Data
14+
@NoArgsConstructor
15+
@AllArgsConstructor
16+
public class ClassBean {
17+
18+
private String bh;
19+
20+
private Date startTime;
21+
22+
private String start;
23+
24+
private Date endTime;
25+
26+
private String end;
27+
28+
@JSONField(name = "class")
29+
private String className;
30+
31+
@JSONField(name = "methods")
32+
private String methods;
33+
34+
private String version;
35+
36+
private String day;
37+
38+
private String startAndEnd;
39+
}

0 commit comments

Comments
 (0)