整合 MyPerf4J 作Java性能監控和統計工具

快速啓動MyPerf4J

MyPerf4J 採用 JavaAgent 配置方式,透明化接入應用,對應用代碼徹底沒有侵入。java

打包

項目地址:
https://github.com/LinShunKang/MyPerf4J

git項目到本地:git

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

打包項目:github

mvn clean package

配置

在 JVM 啓動參數里加上如下兩個參數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!能夠不用理會,由於不影響使用。code

運行

輸出結果,輸出到d:/data/logs/MyPerf4J/method_metrics.logserver

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
相關文章
相關標籤/搜索