Java Agent是插件化、可插拔的。Skywalking的插件分为三种:
- 引导插件:在agent的
bootstrap-plugins
目录下 - 内置插件:在agent的
plugins
目录下 - 可选插件:在agent的
optional-plugins
目录下
Java Agent只会启用 plugins
目录下的所有插件,bootstrap-plugins
目录以及 optional-plugins
目录下的插件不会启用。如需启用引导插件或可选插件,只需将JAR包移到 plugins
目录下,如需禁用某款插件,只需从 plugins
目录中移除即可。
插件生态
引导插件
目前只有两款引导插件:
apm-jdk-http-plugin
用来是监测HttpURLConnection;apm-jdk-threading-plugin
用来监测Callable以及Runnable;
有关引导插件的功能描述,可详见: https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/README.md#bootstrap-class-plugins
。
内置插件
内置插件主要用来为业界主流的技术与框架提供支持。所支持的技术&框架,详见 https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/Supported-list.md
。
可选插件
关于可选插件的功能描述,可详见 https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/README.md
。
插件扩展
Skywalking生态还有一些插件扩展,例如Oracle、Resin插件等。这部分插件主要是由于许可证不兼容/限制,Skywalking无法将这部分插件直接打包到Skywalking安装包内,于是托管在这个地址: https://github.com/SkyAPM/java-plugin-extensions
,使用方式:
- 前往
https://github.com/SkyAPM/java-plugin-extensions/releases
,下载插件JAR包 - 将JAR包挪到
plugins
目录即可启用。