目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7093.2k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(57)
赞(0)

分布式请求链路追踪_Java探针日志监控实现之探针实现

image-20220307154549914

如何使用Java Agent

JDK1.5引入了java.lang.instrument包,开发者可以很方便的实现字节码增强。其核心功能由java.lang.instrument.Instrumentation接口提供。

Instrumentation 有两种使用方式:

  • 在应用运行之前,通过premain()方法来实现,在应用启动时侵入并代理应用。
  • 在应用运行之后,通过调用Attach AP和agentmain()方法来实现

注意:

javassist是一个库,实现ClassFileTransformer接口中的transform()方法。ClassFileTransformer 这个接口的目的就是在class被装载到JVM之前将class字节码转换掉,从而达到动态注入代码的目的。

新建Maven项目javaagentdemo

image-20240102142909613

Pom引入依赖

Maven插件引入失败

在IDEA中使用maven-shade-plugin插件时会提示"Plugin 'maven-shade-plugin:' not found"

解决方法:

  • File -> Setting -> Build, Execution, Deployment -> Build Tools -> Maven -> 勾选Use plugin registry选项
  • File -> Invalidate Caches -> Invalidate and Restart

image-20220304181458695

编写探针类TestAgent

编写TestTransformer

项目测试打包

image-20220304184928231

添加javaagent启动参数

img

启动,打印出日志

image-20220304185241414

发送请求http://localhost:8080/hello

image-20220304185402012

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2