基础概念:
SkyWalking链路追踪代理(SkyWalking Tracing Agent)是一种用于收集和传输链路追踪数据的工具。它与应用程序一起部署,并通过自动或手动方式来收集关于应用程序中的请求路径和操作的信息。该代理将收集到的数据发送到SkyWalking链路追踪系统,该系统可以进行链路分析和性能监测。
主要功能:
SkyWalking链路追踪代理的主要功能包括:
-
数据收集:代理会收集应用程序中的请求和操作的相关数据,包括跟踪标识、Span信息、时间戳等。它会捕获请求的入口和出口,以及请求所经过的各个组件和服务。
-
数据传输:代理将收集到的数据传输给SkyWalking链路追踪系统。传输方式可以是通过网络发送到中央集群,也可以是直接与本地的SkyWalking服务进行交互。
-
上下文传播:代理会确保在跨越多个组件和服务之间传递请求的上下文信息,以便在整个调用链路中进行追踪和分析。
-
插件支持:代理可以通过支持各种应用程序框架和中间件的插件,来收集更详细和准确的链路追踪数据。这些插件可以根据具体的应用程序环境,捕获更丰富的上下文和功能信息。
解读它是一个数据记录的角色。
SkyWalking Agent 插件体系
主要流程:
- 插件的加载
- 插件的匹配
- 插件的拦截
SkyWalking Agent的插件体系是用来扩展和增强Agent功能的重要组成部分。下面按照插件的加载、匹配和拦截的顺序来讲解主要流程:
-
插件的加载:Agent在启动时会加载插件。插件可以作为独立的Jar包或模块,通过加载机制被Agent加载到运行时环境中。Agent会扫描并加载所有配置的插件,以准备进行后续的匹配和拦截操作。
-
插件的匹配:插件加载完成后,Agent会根据插件的配置和条件进行匹配。插件提供了一系列的触发点和规则,用于匹配特定的应用程序和请求。Agent根据匹配结果,决定是否对请求进行拦截并执行插件的操作。
-
插件的拦截:当插件匹配成功后,Agent会进行请求的拦截和操作。拦截过程中,Agent会调用相应插件的代码逻辑,根据插件定义的功能和行为来处理请求。插件可以进行请求的修改、日志输出、性能监测等各种操作。
总的来说,插件的加载、匹配和拦截构成了SkyWalking Agent插件体系的主要流程。通过插件体系,用户可以通过编写自定义插件来扩展Agent的功能,满足特定的追踪、监测和操作需求。Agent加载插件并根据配置进行匹配和拦截,以实现对请求的定制化处理和增强。