java agent_GitHub - dingjs/javaagent: 基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。...
Javaagent
概述
javaagent是一個簡單優雅的java agent,利用java自帶的instrument特性+javassist字節碼編輯技術,實現了無侵入的方法級性能監控。相比于NewRelic或者開源的pinpoint,以及阿里的arthas,本工具主打的是簡單,我們只記錄每個方法的執行次數和時間,并輸出到json格式的日志文件中。基于javaagent的日志,你可以使用嚴麗同學開發的agent日志分析工具進行分析查詢,也可以使用在線日志分析器,或者可以自己去寫分析器,這樣可以讓你快速定位生產環境的性能瓶頸。
集成
java啟動參數中就有javaagent,你只需要在JAVA_OPTS中加入-javaagent:/opt/javaagent/javaagent.jar=/opt/javaagent/agent.properties就實現了方法級監控。其中=前指定的是jar包的路徑,=后指定的是對agent的一些配置參數。
agent.properties說明
# 需要監控的包,多個包用分號分隔
agent.include.package=com.XXX
# 不需要監控的包,多個包用分號分隔。 需要監控的包-不需要監控的包就是真正要監控的包
agent.exclude.package=
# 日志文件,會自動增加日期后綴
agent.log.file=d\:\\agent.log
# 日志輸出周期
agent.log.interval.seconds=600
# 不需要監控的類的正則表達式
agent.exclude.class.regex=
# 是否記錄平均時間
agent.log.avg.execute.time=false
# 默認不需要監控的類的正則表達式
agent.exclude.class.regex.default=.*EnhancerByCGLIB.*;.*FastClassByCGLIB.*
# 記錄方法的耗時時是采用nanoTime,還是currentTimeMillis,nanoTime更準確,但是會耗時一些
agent.log.nano=true
agent日志分析器使用
agent日志分析器是我同事嚴麗使用SpringBoot+h2數據庫開發的分析工具,除了基礎功能,對于有sql能力的同學,你可以直接使用console登錄后,直接寫sql進行統計,你可以按自己想要的維度來進行處理。
JDBC URL: jdbc:h2:mem:~/h2test
USer Name : sa
Password : 空
登錄后,你就可以盡情的寫sql了。
歡迎關注我的公眾號
程序員阿水
總結
以上是生活随笔為你收集整理的java agent_GitHub - dingjs/javaagent: 基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse java 注释_Ecli
- 下一篇: java jdk 1.8 配置_java