SkyWalking 源码解析 —— Agent 插件(一)之 Tomcat

摘要: 原创出处 http://www.iocoder.cn/SkyWalking/agent-plugin-tomcat/ 「芋道源码」欢迎转载,保留摘要,谢谢!

本文主要基于 SkyWalking 3.2.6 正式版


1. 概述

本文主要分享 SkyWalking Agent Tomcat 插件。涉及到的代码不多,如下图:

2. TomcatInstrumentation

skywalking-plugin.def 里,定义了插件,如下图:


org.skywalking.apm.plugin.tomcat78x.define.TomcatInstrumentation ,实现 ClassInstanceMethodsEnhancePluginDefine 抽象类,定义了方法切面,代码如下:

2.1 TomcatInvokeInterceptor

org.skywalking.apm.plugin.tomcat78x.TomcatInvokeInterceptor ,实现 InstanceMethodsAroundInterceptor 接口,TomcatInstrumentation 的拦截器。代码如下:

2.2 TomcatExceptionInterceptor

org.skywalking.apm.plugin.tomcat78x.TomcatExceptionInterceptor ,实现 InstanceMethodsAroundInterceptor 接口,TomcatInstrumentation 的拦截器。代码如下:

  • #beforeMethod(...) 方法,处理异常。代码如下:
    • 第 35 行:调用 AbstractSpan#errorOccurred() 方法,标记 EntrySpan 对象发生异常。
    • 第 35 行:调用 AbstractSpan#log(Throwable) 方法,记录异常日志到 EntrySpan 对象。
赞(0) 打赏

如未加特殊说明,此网站文章均为原创,转载必须注明出处。Java 技术驿站 » SkyWalking 源码解析 —— Agent 插件(一)之 Tomcat
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java 技术驿站 | 致力打造 Java 精品博客

联系作者优质文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏