适用于 AWS Lambda 的 APM 架构
编辑适用于 AWS Lambda 的 APM 架构
编辑AWS Lambda 使用特殊的执行模型来提供可扩展的、按需计算服务以执行代码。特别是,当没有正在处理的活动请求时,AWS 会冻结 Lambda 函数的执行环境。这种执行模型对 AWS Lambda 函数中的 APM 提出了额外的要求。
- 为避免数据丢失,APM 代理收集的 APM 数据需要在 Lambda 函数的执行环境被冻结之前刷新。
- 刷新 APM 数据必须快速,以免影响 Lambda 函数请求的响应时间。
为了实现上述目标,Elastic APM 代理会检测 AWS Lambda 函数,并通过 AWS Lambda 扩展 分发 APM 数据。
通常,在 Lambda 函数执行期间,AWS Lambda 执行环境中只有一个语言进程正在运行。使用 AWS Lambda 扩展,Lambda 用户可以在其主要服务/应用程序进程 alongside 运行一个第二个进程。
通过使用 AWS Lambda 扩展,Elastic APM 代理可以将数据发送到本地 Lambda 扩展进程,该进程会异步地将数据转发到 APM 服务器。Lambda 扩展确保 Lambda 函数和 APM 服务器实例之间的任何潜在延迟都不会导致 Lambda 函数本身的请求流出现延迟。