一、下载源码

地址:https://github.com/LinShunKang/MyPerf4J.git
分支:master

二、打包项目

  1. 跳过测试

在这里插入图片描述

  1. 打包

在这里插入图片描述

  1. 修改包名:MyPerf4J-ASM.jar

在这里插入图片描述

  1. 修改配置文件myPerf4J.properties(自己新建)

     # MyPerf4J 所有配置请参考:https://github.com/LinShunKang/MyPerf4J/wiki/%E9%85%8D%E7%BD%AE
    
     # 配置监控应用的名称
     app_name = FlowProcessAgent
    
     # 是否开启 debug 模式,可配置为 true/false
     debug = true
    
    
     ###############################################################################
     #                        HTTP Server Configuration                            #
     ###############################################################################
    
     # 配置 HTTP Server 端口号
     http.server.port = 2048
    
     # 配置 HTTP Server 最小工作线程数
     http.server.min_workers = 1
    
     # 配置 HTTP Server 最大工作线程数
     http.server.max_workers = 2
    
     # 配置 HTTP Server 排队数, worker 线程数达到最大时,接受排队的请求个数
     http.server.accept_count = 1024
    
    
     ###############################################################################
     #                           Metrics Configuration                             #
     ###############################################################################
    
     # 配置 MetricsExporter 类型
     #	log.stdout: 	以标准格式化结构输出到 stdout.log
     #	log.standard: 	以标准格式化结构输出到磁盘
     #	log.influxdb: 	以 InfluxDB LineProtocol 格式输出到磁盘
     #	http.influxdb: 	以 InfluxDB LineProtocol 格式发送至 InfluxDB server
     metrics.exporter = log.stdout
    
     # 配置各项监控指标日志的文件路径
     # 如果 metrics.exporter 配置为 log.influxdb,建议把所有的 metrics.log.* 路径配置成一样以方便 Telegraf 收集
     metrics.log.method = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.class_loading = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.gc = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.memory = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.buff_pool = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.thread = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.file_desc = /home/hd/myPerf4J/logs/metrics.log
     metrics.log.compilation = /home/hd/myPerf4J/logs/metrics.log
    
     # 配置日志文件滚动时间间隔,分别有 MINUTELY、HOURLY 和 DAILY 三个值
     metrics.log.rolling.time_unit = DAILY
    
     # 配置历史日志文件保留个数
     metrics.log.reserve.count = 7
    
     # 配置方法指标采集的时间片,单位为 ms,最小 1s,最大 600s
     metrics.time_slice.method = 10000
    
     # 配置 JVM 指标采集的时间片,单位为ms,最小1s,最大600s
     metrics.time_slice.jvm = 10000
    
     # 是否展示方法参数类型
     metrics.method.show_params = true
    
     # 配置 Java 类的层级映射关系
     # 规则为:LevelA:[classNameExpA1,classNameExpA2];LevelB:[classNameExpB1,classNameExpB2];
     metrics.method.class_level_mapping = Filter:[*Filter];Handler:[*Handler];
    
    
     ###############################################################################
     #                           InfluxDB Configuration                            #
     ###############################################################################
    
     #influxdb.host = 60.205.188.229
     #influxdb.port = 3306
     #influxdb.database = MyPerf4J_Test
    
     #influxdb.username = root
     #influxdb.password = root
    
     # 配置超时时间,单位:ms
     #influxdb.conn_timeout = 3000
     #influxdb.read_timeout = 5000
    
    
     ###############################################################################
     #                           Filter Configuration                              #
     ###############################################################################
    
     # 配置需要监控的package,可配置多个,用英文';'分隔
     #   com.demo.p1 代表包含以 com.demo.p1 为前缀的所有包和类
     #   [] 表示集合的概念:例如,com.demo.[p1,p2,p3] 代表包含以 com.demo.p1、com.demo.p2 和 com.demo.p3 为前缀的所有包和类,等价于 com.demo.p1;com.demo.p2;com.demo.p3
     #   * 表示通配符:可以指代零个或多个字符,例如,com.*.demo.*
     filter.packages.include = cn.perf4j.demo;
    
     # 配置不需要监控的package,可配置多个,用英文';'分隔
     filter.packages.exclude = cn.perf4j.demo.dao.DemoDAOImpl
    
     # 配置不需要进行监控的方法名,每个方法名用英文 ';' 分隔
     #filter.methods.exclude = getId1 代表排除所有方法名为 getId1 的方法
     #filter.methods.exclude = DemoServiceImpl.getId1 代表排除类 DemoServiceImpl 中所有方法名为 getId1 的方法
     #filter.methods.exclude = DemoServiceImpl.getId1(long) 代表排除类 DemoServiceImpl 中方法签名为 getId1(long) 的方法
     filter.methods.exclude = equals;toString;hashCode;wait
    
     # 配置是否排除私有方法,true/false
     filter.methods.exclude_private = true
    
     # 配置需要排除的 ClassLoader,可配置多个ClassLoader,用英文';'分隔
     filter.class_loaders.exclude =
    
    
     ###############################################################################
     #                           Recorder Configuration                            #
     ###############################################################################
    
     # 配置 Recorder 模式,可配置为 accurate/rough
     recorder.mode = ACCURATE
    
     # 配置 Recorders 转盘的数量
     recorders.backup_count = 3
    
     # 指定通用的方法执行时间阈值,单位为 ms
     recorder.size.timing_arr = 1500
    
     # 指定一个时间片内,超过方法执行时间阈值的次数,仅在 recorder.mode = accurate 时有效
     recorder.size.timing_map = 128
    
  2. MyPerf4J-ASM.jar和myPerf4J.properties上传到linux中

    mkdir /home/hd/myPerf4J

    mkdir /home/hd/myPerf4J/logs

    在这里插入图片描述

  3. 在 JVM 启动参数里加上以下两个参数

    在这里插入图片描述

     JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
     JVM_OPTS="
     -Xmx2g 
     -Xms2g 
     -Xmn700m 
     -XX:+UseG1GC
     -Xloggc:/home/hd/tomcat-app-node01/logs/gc.log 
     -XX:+PrintGCDetails
     "
     MYPERF4J_OPTS="
     -javaagent:/home/hd/myPerf4J/MyPerf4J-ASM.jar
     -DMyPerf4JPropFile=/home/hd/myPerf4J/myPerf4J.properties"
    
     JAVA_OPTS="$JAVA_OPTS $JVM_OPTS $MYPERF4J_OPTS"
      
    
     # Register custom URL handlers
     # Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
     JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
    
  4. 启动项目

    [hd@ds1 bin]$ ./catalina.sh start

  5. 查看日志

    [hd@ds1 logs]$ tail -n 200 catalina.out

    在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐