插件 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 中的最新版本Maven Central

一个 示例仓库 和一篇 文章 提供了向代理添加应用程序自定义插桩的详细示例。概述如下:

  1. 子类化 co.elastic.apm.agent.sdk.ElasticApmInstrumentation
  2. 指定匹配器,定义将要插桩的类和方法
  3. 添加插桩建议实现
  4. 创建一个 META-INF/services/co.elastic.apm.agent.sdk.ElasticApmInstrumentation 文件,其中列出完全限定的插桩类名,每行一个类名
  5. 创建一个插件 jar,其中包含插桩类、co.elastic.apm.agent.sdk.ElasticApmInstrumentation 文件和任何依赖项(除了代理本身,但包括如上所示的插件 API)
  6. 像往常一样使用代理启动您的应用程序,但另外还要将 plugins_dir 配置选项 设置为包含创建的插件 jar 的目录(并且该目录应仅包含插件 jar,因为代理将尝试加载该目录中的任何 jar)。

社区插件编辑

为了帮助我们的社区,我们提供了一个 页面,您可以在其中列出您创建的认为社区可以使用的插件。