Apache SkyWalking 是一个开源的应用性能监控 (APM) 工具,支持分布式系统的追踪、监控和诊断。SkyWalking Agent 是其中的一个重要组件,用于在服务端应用中收集性能数据和追踪信息,并将其发送到 SkyWalking 后端服务器进行处理和展示。
SkyWalking Agent 的工作原理
-
启动时加载 Agent:
SkyWalking Agent 通过 Java Agent 机制,在 JVM 启动时加载。用户需要在启动应用时添加-javaagent参数,指定 SkyWalking Agent 的 JAR 文件。java -javaagent:/path/to/skywalking-agent.jar -jar your-application.jar -
字节码增强:
SkyWalking Agent 使用字节码增强技术(基于字节码操作库如 ASM)来修改应用程序的类文件,以插入监控代码。这些代码会在方法调用、数据库访问、HTTP 请求等关键点收集性能数据。 -
拦截方法调用:
通过字节码增强,Agent 拦截应用程序中的特定方法调用(如 HTTP 请求、数据库查询等)。在方法开始前、方法结束后和异常抛出时,Agent 会记录相关信息。 -
收集性能数据和追踪信息:
拦截的方法调用会生成追踪数据,这些数据包括:- 方法执行的开始时间和结束时间
- 方法执行的耗时
- 调用链上下文信息(如 Trace ID、Span ID)
- 方法的输入输出参数和异常信息
-
数据缓冲和发送:
收集到的数据会暂时存储在 Agent 的内存中

2561

被折叠的 条评论
为什么被折叠?



