概述

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作用_javaagent 基于 javaagent 开发的 APM 工具,收集方法的执行次数和执行时间,定时输出成 json 格式 @codeKK Android开源站...相关推荐

  1. java agent_GitHub - dingjs/javaagent: 基于javaagent开发的APM工具,收集方法的执行次数和执行时间,定时输出成json格式的日志。...

    Javaagent 概述 javaagent是一个简单优雅的java agent,利用java自带的instrument特性+javassist字节码编辑技术,实现了无侵入的方法级性能监控.相比于Ne ...

  2. java集成agent作用,Java Agent基本简介和使用

    javaagent简介 javaagent是一种能够在不影响正常编译的情况下,修改字节码.java作为一种强类型的语言,不通过编译就不能能够进行jar包的生成.而有了javaagent技术,就可以在字 ...

  3. Java合并m3u8_m3u8Download java 下载 m3u8 视频,解密并合并 ts java download m3u8 vide @codeKK Android开源站...

    java 下载 m3u8 视频,解密并合并 ts m3u8 链接获取方式以及代码分析请参见: https://blog.csdn.net/qq494257084/article/details/103 ...

  4. android sqlite 操作类封装,SQLiteUtils 一个简单的基于 Android 的 Sqlite 数据库的操作封装库 @codeKK Android开源站...

    一个简单的基于 Android 的 Sqlite 数据库的操作封装,它有如下的好处: 便捷地创建表和增添表字段 通过操作对象来 insert 或者 update 表记录 支持多种查询方式,支持分页查询 ...

  5. android 商品筛选view,FilterTabView 基于 Popupwindow 实现的筛选房源信息等相关的控件,可以自由排序 @codeKK Android开源站...

    基于 Popupwindow 的下拉筛选控件 功能 区分 支持区域二级联动选择 FilterTabConfig.FILTER_TYPE_AREA 支持单行 List 样式选择 FilterTabCon ...

  6. android 权限作用说明书,AndroidAcp 一句话搞定,简化 Android 6.0 系统复杂的权限操作 @codeKK Android开源站...

    Acp 为 Android check permission 缩写,此库简化 Android 6.0 系统复杂的权限操作而编写. 特点 支持批量权限申请,不需要重写 onRequestPermissi ...

  7. Scriptis安装(基于Linkis开发的数据分析工具)

    Scriptis是基于Linkis开发的数据分析工具,部署Scriptis前需要先将Linkis进行部署,Linkis的部署手册见:Linkis部署手册 1.准备工作 点击release 选择对应的安 ...

  8. 用Delphi开发OPC客户端工具的方法研究

    用Delphi开发OPC客户端工具的方法研究[1]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:o ...

  9. JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> java代码对象如下: package com.evideostb.billsystem.module.model;impor ...

  10. java医院挂号代码_基于SSM开发的Java医院预约挂号系统 源码下载

    这是一个基于SSM开发的Java医院预约挂号系统,源码中附带主工程以及数据库文件. 目前已知Bug:因为时间预约信息是假数据,控制预约日历显示的代码在data/index.js,因为js写的有点bug ...

最新文章

  1. 精品软件 推荐 百度杀毒 软件
  2. android键盘弹出头部上移处理
  3. php explain type等级,mysql中explain分析sql详解
  4. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识
  5. 鸿蒙不是安卓也不是Linux
  6. python调用c++深度学习模型生成的dll(传入图片,返回多个结果)
  7. [模板] 线筛欧拉函数
  8. Python 函数参数 传引用还是传值
  9. 怎么用便签在手机上记事?
  10. Unity3D物理渲染算法研究【PBR】
  11. 如何将工业现场模拟信号无线传输到PLC/主机?
  12. UWP 中的各种文件路径(用户、缓存、漫游、安装……)
  13. macOS 上编译 Dynamips
  14. 按键1按下数码管显示1,按键2按下数码管显示2,按键3按下8个LED灯实现流水灯效果;
  15. win10锁屏c语言,Win10锁屏状态怎么设置打开任意应用程序?
  16. android 1g运行内存,全新安卓系统首曝光:安卓9.0只要1G运存就能流畅运行
  17. 车载相机IQ调试策略
  18. 深度解析SQL和NoSQL数据库,掌握主流数据库【两万字解析】
  19. 2020.05.29
  20. 16、数据分析--朴素贝叶斯

热门文章

  1. 大数据笔记_Hadoop基础知识
  2. Hack_All_The_Things——探索IoT相关的攻击研究和渗透测试
  3. 论文阅读笔记(十一)——Mobilenet-SSDv2: An Improved Object Detection Model for Embedded Systems
  4. keras中TimeDistributed的用法
  5. 深入web的请求过程
  6. shell 调试脚本设置
  7. javaee utf-8文件的转换
  8. 学号20155308 2016-2017-2 《Java程序设计》实验一(Java开发环境的熟悉)实验报告...
  9. 委托和事件的一些理解笔记
  10. redis在windows上的安装