Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。

License

Notifications You must be signed in to change notification settings

dingjs/javaagent

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
71 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎉 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=/opt/agent.log
# 日志输出周期
agent.log.interval.seconds=600
# 不需要监控的类的正则表达式
agent.exclude.class.regex=
# 是否记录平均时间
agent.log.avg.execute.time=false
# 记录方法的耗时时是采用nanoTime,还是currentTimeMillis,nanoTime更准确,但是会耗时一些
agent.log.nano=true
# 是否统计方法执行时间百分比,同JMeter性能测试百分比计算方式,如果开启默认会统计最大值、最小值
agent.log.stat.execute.time=false
# 方法执行时间统计百分比(agent.log.stat.execute.time=true时有效),多选范围[0, 1],例如:0.5,0.9,0.95,0.99
agent.log.stat.execute.time.pct=0.5,0.9,0.95,0.99

agent日志分析器使用

agent日志分析器是我同事严丽使用SpringBoot+h2数据库开发的分析工具,除了基础功能,对于有sql能力的同学,你可以直接使用agent日志分析工具自带的console登录后,直接写sql进行统计,你可以按自己想要的维度来进行处理。

  • JDBC URL: jdbc:h2:mem:~/h2test
  • USer Name : sa
  • Password : 空

登录后,你就可以尽情地写 sql 对类、方法的执行次数、执行时间进行统计查询。

欢迎关注我的公众号

  • 程序员阿水

程序员阿水

About

基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.