整合 MyPerf4J 做Java性能监控和统计工具
快速启动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性能监控和统计工具的更多相关文章
- java虚拟机(八)--java性能监控与故障处理工具
问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志.异常堆栈.GC日志.线程快照(threaddump/javacore文件 ).堆转储快照(heapdump/hp ...
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
责怪糟糕的代码(或不良代码对象)并不能帮助您发现瓶颈,提高 Java? 应用程序速度,猜测也不能帮您解决.Ted Neward 引导您关注 Java 性能监控工具,从5 个技巧开始,使用Java 5 ...
- 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...
- Linux下Java性能监控
Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...
- Java性能监控
Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...
- JAVA性能监控与调优参考文档链接
JAVA性能监控与调优参考文档链接 jdk8工具集 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroub ...
- java虚拟机之性能监控与故障处理工具
sun jdk性能监控与故障处理工具 jps: 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id. jstat: 用于监视虚拟机各种运行状态信息的命令航工具.它可 ...
- jvm性能监控与故障处理工具
jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具 类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...
- JYM虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具 一.jps:虚拟机进程状况工具 常用指令 二.jstat:虚拟机统计信息监视工具 常用指令 三.jinfo:配置信息工具 四.jmap:Java内存映像工具 常用指令 五 ...
随机推荐
- BZOJ_5301_[Cqoi2018]异或序列&&CF617E_莫队
Description 已知一个长度为 n 的整数数列 a[1],a[2],…,a[n] ,给定查询参数 l.r ,问在 [l,r] 区间内,有多少连续子 序列满足异或和等于 k . 也就是说,对于所 ...
- 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)
为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...
- ./configure、make、make install
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 一.基本信息 1../configure 是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不 ...
- [日志分析] Access Log 日志分析
0x00.前言: 如何知道自己所在的公司或单位是否被入侵了?是没人来“黑”,还是因自身感知能力不足,暂时还没发现?入侵检测是每个安全运维人员都要面临的严峻挑战.安全无小事,一旦入侵成功,后果不堪设想. ...
- happyChat开发系列:使用websocket.io实现双向通信的乐聊大前端开发
一.前言 乐聊是一个自己用websocket写一个完整的应用,虽然功能比较欠缺,但是实现了基本的文字聊天,以及群聊,私聊,机器人聊天等功能.因为这个自己做了PC端,无线端(手机端),以及使用cordo ...
- maven构建失败。
maven项目编译报“Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1” 解决方案:setting.x ...
- xamarin forms常用的布局StackLayout详解
通过这篇文章你将了解到xamarin forms中最简单常用的布局StackLayout.至于其他几种布局使用起来,效果相对较差,目前在项目中使用最多的也就是这两种布局StackLayout和Grid ...
- RabbitMq在CentOs7下的完整安装步骤,带你踩坑
1.前言 因为公司项目中用的RabbitMq来做消息处理,自己以前没有接触过,所以想自学一下.然额,光安装就花了6.7个小时才搞定,中间还换过一个版本,综合国内外博客才最终将所有安装中遇到的问题解决掉 ...
- 引用provinces.js的三级联动
第一次写随笔 应该写的不是太好 请多多见谅 我这次是在网上发现了一个三级联动 也是给新人一个福利 这个是你需要新建个 JavaScript 文件 并复制到你新建的文件里面 var pr ...
- C# 添加Excel表单控件(Form Controls)
在Excel中,添加的控件可以和单元格关联,我们可以操作控件来修改单元格的内容,在下面的文章中,将介绍在Excel中添加几种不同的表单控件的方法,包括: 添加文本框(Textbox) 单选按钮(Rad ...