正在加载

Elastic APM Agent

Elastic Stack Serverless

注意

对于可观测性无服务器项目,需要 Admin 角色或更高级别才能使用 APM Agent。要了解更多信息,请参阅分配用户角色和权限

Elastic APM Agent 自动测量应用程序性能并跟踪错误。它们为流行的框架和技术提供内置支持,并提供易于使用的 API,允许您检测任何应用程序。

Elastic APM Agent 由 Elastic 构建和维护。虽然它们相似,但不同的编程语言有不同的细微差别和要求。选择您首选的语言,以了解有关每个 Agent 如何工作的更多信息。

Elastic APM Java Agent

Elastic APM Java Agent 自动检测支持的技术并记录有趣的事件,例如数据库查询的 span 和传入 HTTP 请求的事务。为此,它利用 JVM 的能力来检测类的字节码。这意味着对于受支持的技术,不需要更改代码。

Span 被分组到事务中 - 默认情况下,每个传入的 HTTP 请求对应一个事务。但是,可以创建与 HTTP 请求无关的自定义事务。事务和 Span 将被发送到 Elastic,在那里它们会被转换、存储并准备好进行可视化。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅Java Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM Node.js Agent

Elastic APM Node.js Agent 自动检测支持的框架并记录有趣的事件,例如 HTTP 请求和数据库查询。为此,它会在加载模块时修补模块,以捕获何时调用模块函数和回调。此外,在某些情况下,将修补模块以允许通过异步延续传播跟踪上下文。这意味着对于受支持的技术,不需要更改代码。

Agent 自动将模块函数调用链接到回调调用,以测量它们的持续时间和元数据(例如 DB 语句),以及 HTTP 相关信息(例如 URL、参数和标头)。

这些事件(称为事务和 Span)将被发送到 Elastic,在那里它们会被转换、存储并准备好进行可视化。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅Node.js Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM Python Agent

Elastic APM Python Agent 内置支持 Django 和 Flask 性能指标和错误日志记录,以及对其他 WSGI 框架的通用错误日志记录支持。

它通过几种不同的方式检测您的应用程序以收集 APM 事件

为了收集有关传入请求和后台任务的数据,Agent 与受支持的技术集成,以利用框架提供的钩子和信号。这些框架集成需要在您的应用程序中进行有限的代码更改。

为了从数据库驱动程序、HTTP 库等收集数据,Elastic APM Agent 检测这些库中的某些函数和方法。检测会自动设置,不需要任何代码更改。

除了 APM 和错误数据外,Python Agent 还会定期收集系统和应用程序指标。此收集发生在 Agent 启动的后台线程中。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅Python Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM Ruby Agent

Elastic APM Ruby Agent 自动检测支持的技术并记录有趣的事件,例如 HTTP 请求和数据库查询。为此,它会在库提供相关公共 API 时使用它们。否则,它会仔细包装必要的内部方法。这意味着对于受支持的技术,不需要更改代码。

APM Agent 会自动跟踪对您的数据存储的查询,以测量它们的持续时间和元数据(例如 DB 语句),以及 HTTP 相关信息(例如 URL、参数和标头)。

这些事件(称为事务和 Span)将被发送到 Elastic,在那里它们会被转换、存储并准备好进行可视化。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅Ruby Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM Go Agent

Elastic APM Go Agent 使您能够跟踪 Go 应用程序中操作的执行。它为流行的框架和工具包提供内置支持,例如 GorillaGin,以及对检测 Go 内置 net/httpdatabase/sql 驱动程序的支持。

Agent 包含针对受支持技术的检测模块,每个模块都为记录有趣的事件(例如传入 HTTP 请求、传出 HTTP 请求和数据库查询)提供中间件或包装器。

要收集有关传入 HTTP 请求的数据,请为支持的 Web 框架之一安装路由器中间件。传入的请求将被记录为事务,以及任何相关的 panic 或错误。

要收集传出 HTTP 请求的数据,请使用 module/apmhttp 检测 http.Clienthttp.Transport。要收集有关数据库查询的数据,请使用 module/apmsql,它为知名的数据库驱动程序提供检测。

为了将事务与相关的 Span 和错误连接起来,并在服务之间传播跟踪(分布式跟踪),Agent 依赖于 Go 的内置 context 包:事务和 Span 存储在 context 对象中。例如,对于传入的 HTTP 请求,正在进行的跟踪数据将记录在可通过 net/http.Context 访问的 context 对象中。

除了捕获此处提到的事件外,Agent 还会定期收集系统和应用程序指标。此收集发生在初始化 Agent 时自动启动的后台 goroutine 中。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅Go Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM .NET Agent

Elastic APM .NET Agent 自动检测支持的技术并记录有趣的事件,例如 HTTP 请求和数据库查询。为此,它使用检测框架的内置功能,例如 Diagnostic Source、IIS 的 HTTP 模块或 Entity Framework 的 IDbCommandInterceptor。这意味着对于受支持的技术,除了启用自动检测之外,不需要更改代码。

Agent 会自动注册内置 Diagnostic Source 事件的回调方法。有了这个,受支持的框架会触发 Agent 代码以进行相关事件,以测量它们的持续时间并收集元数据,例如 DB 语句,以及 HTTP 相关信息,例如 URL、参数和标头。这些事件(称为事务和 Span)将被发送到 Elastic,在那里它们会被转换、存储并准备好进行可视化。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅.NET Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

Elastic APM PHP Agent

Elastic APM PHP Agent 测量应用程序性能并跟踪错误。此扩展必须安装在您的 PHP 环境中。

了解更多

如果您准备好尝试 Elastic APM,请参阅开始使用追踪和 APM

请参阅PHP Agent 参考,获取完整文档,包括

重要

并非所有 APM Agent 配置选项都与 Elastic Cloud 无服务器兼容。

支持以下版本的 Elastic APM Agent

Agent 名称 Agent 版本
APM AWS Lambda 扩展 1.x
Go Agent 1.x
Java Agent 1.x
.NET Agent 1.x
Node.js Agent 4.x
PHP Agent 1.x
Python Agent 6.x
Ruby Agent 3.x
注意

某些最近添加的功能可能需要比上面列出的更新的 Agent 版本。在这些情况下,所需 APM Agent 版本将在功能文档中说明。

© . All rights reserved.