插件 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)。

社区插件

编辑

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