快速启动MyPerf4J

MyPerf4J 采用 JavaAgent 配置方式,透明化接入应用,对应用代码完全没有侵入。

打包

项目地址:

https://github.com/LinShunKang/MyPerf4J

git项目到本地:

git clone git@github.com:LinShunKang/MyPerf4J.git

打包项目:

mvn clean package

配置

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

-javaagent:D:/workspqce/MyPerf4J/MyPerf4J-ASM-2.5.0.jar
-DMyPerf4JPropFile=D:/workspqce/MyPerf4J/myPerf4J.properties

其中,myPerf4J.properties的配置如下:

# 应用名称
AppName=MyPerf4JTest # MetricsProcessor类型,0:以标准格式化结构输出到stdout.log 1:以标准格式化结构输出到磁盘 2:以InfluxDB LineProtocol格式输出到磁盘
MetricsProcessorType=1 # 配置各个Metrics日志的文件路径,可不配置
MethodMetricsFile=d:/data/logs/MyPerf4J/method_metrics.log
ClassMetricsFile=d:/data/logs/MyPerf4J/class_metrics.log
GCMetricsFile=d:/data/logs/MyPerf4J/gc_metrics.log
MemMetricsFile=d:/data/logs/MyPerf4J/memory_metrics.log
BufPoolMetricsFile=d:/data/logs/MyPerf4J/buf_pool_metrics
ThreadMetricsFile=d:/data/logs/MyPerf4J/thread_metrics.log # 配置Record模式,可配置为accurate/rough
RecorderMode=accurate # 配置时间片,单位为ms,最小1s,最大600s
MilliTimeSlice=10000 # 需要监控的package,可配置多个,用英文';'分隔
#IncludePackages=com.chinasofti.huateng.lz.qrcode.server.controller;
IncludePackages=com.mmzsit.controller;
# 不需要监控的package,可配置多个,用英文';'分隔
# ExcludePackages=com.chinasofti.huateng.lz.qrcode.server.config; # 默认监控IncludePackages下的所有方法
# 不监控的方法:可配置多个方法名,用英文';'分隔
ExcludeMethods=upload # 是否展示方法参数类型
ShowMethodParams=true
# 是否排除私有方法,true/false
ExcludePrivateMethod=true # 通用的方法执行时间阈值,单位为ms
ProfilingTimeThreshold=1000 # 在一个时间片内,超过方法执行时间阈值的次数,仅在RecorderMode=accurate时有效
ProfilingOutThresholdCount=10

启动

2019-03-27 18:25:25.234 [MyPerf4J] WARN profilingParamFile is empty!
2019-03-27 18:25:25.330 [MyPerf4J] INFO
__ ___ ____ ______ __ __
/ |/ /_ __/ __ \___ _____/ __/ // / / /
/ /|_/ / / / / /_/ / _ \/ ___/ /_/ // /___ / /
/ / / / /_/ / ____/ __/ / / __/__ __/ /_/ /
/_/ /_/\__, /_/ \___/_/ /_/ /_/ \____/
/____/ 2019-03-27 18:25:25.331 [MyPerf4J] INFO AbstractBootstrap doInitial() SUCCESS!!!

启动时出现的提示信息:WARN profilingParamFile is empty!可以不用理会,因为不影响使用。

运行

输出结果,输出到d:/data/logs/MyPerf4J/method_metrics.log

MyPerf4J Method Metrics [2019-03-27 18:24:20, 2019-03-27 18:24:30]
Method[1] Type RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 TP99999 TP100
FtpController.download() General 0 540.00 540 540 0.00 1 540 540 540 540 540 540 540 540 MyPerf4J Method Metrics [2019-03-27 18:24:30, 2019-03-27 18:24:40]
Method[1] Type RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 TP99999 TP100
FtpController.upload() General 0 467.00 467 467 0.00 1 467 467 467 467 467 467 467 467

整合 MyPerf4J 做Java性能监控和统计工具的更多相关文章

  1. java虚拟机(八)--java性能监控与故障处理工具

    问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志.异常堆栈.GC日志.线程快照(threaddump/javacore文件 ).堆转储快照(heapdump/hp ...

  2. 关于 Java 性能监控您不知道的 5 件事,第 1 部分

    责怪糟糕的代码(或不良代码对象)并不能帮助您发现瓶颈,提高 Java? 应用程序速度,猜测也不能帮您解决.Ted Neward 引导您关注 Java 性能监控工具,从5 个技巧开始,使用Java 5 ...

  3. 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...

  4. Linux下Java性能监控

    Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...

  5. Java性能监控

    Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...

  6. JAVA性能监控与调优参考文档链接

    JAVA性能监控与调优参考文档链接 jdk8工具集 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroub ...

  7. java虚拟机之性能监控与故障处理工具

    sun jdk性能监控与故障处理工具 jps: 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id. jstat: 用于监视虚拟机各种运行状态信息的命令航工具.它可 ...

  8. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  9. JYM虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 一.jps:虚拟机进程状况工具 常用指令 二.jstat:虚拟机统计信息监视工具 常用指令 三.jinfo:配置信息工具 四.jmap:Java内存映像工具 常用指令 五 ...

随机推荐

  1. BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演

    BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演 Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求 ...

  2. BZOJ_1367_[Baltic2004]sequence_结论题+可并堆

    BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...

  3. BZOJ_2724_[Violet 6]蒲公英_分块

    BZOJ_2724_[Violet 6]蒲公英_分块 Description Input 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod ...

  4. selenium IDE 使用方法整理

    1.设置起始点(确定case从哪步开始执行),快捷键:S,效果图如下: 2.设置断点(case执行到添加断点处,将自动停止),快捷键:B,效果图如下: 3.设置判断点    如:百度输入ceshi,点 ...

  5. 面试题:求第K大元素(topK)?

    一.引言二.普通算法算法A:算法B:三.较好算法算法C:算法D:四.总结 一.引言 ​ 这就是类似求Top(K)问题,什么意思呢?怎么在无序数组中找到第几(K)大元素?我们这里不考虑海量数据,能装入内 ...

  6. 从壹开始前后端 [vue后台] 之一 || 权限后台系统 1.0 正式上线

    缘起 哈喽各位小伙伴周三好,春节已经过去好多天了,群里小伙伴也各种催搞了,新年也接了新项目,比较忙,不过还是终于赶上这个二月的尾巴写了这篇文章,也把 vue 权限后台上线了(项目地址:http://1 ...

  7. angular2-7中的变化监测

      最近做公司新项目用的angular7,中碰到了一个很头疼的问题在绑定对象中的数据改变时,页面视图没有跟新,需点击页面中的时间元素后才会更新.以前使用angularJs也经常碰到类似情况,这种时候一 ...

  8. Docker入门(三)使用Docker Compose

    Compose介绍   Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 ...

  9. 免费下载获取Odoo中文实施 应用 指南 手册

    引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规 ...

  10. Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口

    背景(可略过) 目前在调试 Python 程序,遇到了一个问题:当程序中包含多线程时,使用 IDLE 运行是不会执行多线程的语句的,在网上一顿搜罗了解到这种情况可以换成在命令行下执行.好像用 PyCh ...