插件 API
编辑插件 API编辑
Elastic APM Java 代理的插件 API 允许您向代理添加自定义插桩,代理将以与应用内部定义的插桩相同的方式自动应用这些插桩。
插件 API 是 OpenTelemetry API,加上对插件 SDK (apm-agent-plugin-sdk) 的依赖,并且需要 1.31.0+ 版本的代理。
pom.xml。
<dependency> <groupId>co.elastic.apm</groupId> <artifactId>apm-agent-plugin-sdk</artifactId> <version>${elastic-apm.version}</version> </dependency>
build.gradle。
compile "co.elastic.apm:apm-agent-plugin-sdk:$elasticApmVersion"
将版本占位符替换为 maven central 中的最新版本:
一个 示例仓库 和一篇 文章 提供了向代理添加应用程序自定义插桩的详细示例。概述如下:
- 子类化
co.elastic.apm.agent.sdk.ElasticApmInstrumentation
- 指定匹配器,定义将要插桩的类和方法
- 添加插桩建议实现
- 创建一个
META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation
文件,其中列出完全限定的插桩类名,每行一个类名 - 创建一个插件 jar,其中包含插桩类、
co.elastic.apm.agent.sdk.ElasticApmInstrumentation
文件和任何依赖项(除了代理本身,但包括如上所示的插件 API) - 像往常一样使用代理启动您的应用程序,但另外还要将 plugins_dir 配置选项 设置为包含创建的插件 jar 的目录(并且该目录应仅包含插件 jar,因为代理将尝试加载该目录中的任何 jar)。
社区插件编辑
为了帮助我们的社区,我们提供了一个 页面,您可以在其中列出您创建的认为社区可以使用的插件。