适用于 AWS Lambda 的 APM 架构

编辑

适用于 AWS Lambda 的 APM 架构

编辑

AWS Lambda 使用特殊的执行模型来提供可扩展的、按需计算服务以执行代码。特别是,当没有正在处理的活动请求时,AWS 会冻结 Lambda 函数的执行环境。这种执行模型对 AWS Lambda 函数中的 APM 提出了额外的要求。

  1. 为避免数据丢失,APM 代理收集的 APM 数据需要在 Lambda 函数的执行环境被冻结之前刷新。
  2. 刷新 APM 数据必须快速,以免影响 Lambda 函数请求的响应时间。

为了实现上述目标,Elastic APM 代理会检测 AWS Lambda 函数,并通过 AWS Lambda 扩展 分发 APM 数据。

通常,在 Lambda 函数执行期间,AWS Lambda 执行环境中只有一个语言进程正在运行。使用 AWS Lambda 扩展,Lambda 用户可以在其主要服务/应用程序进程 alongside 运行一个第二个进程。

image showing data flow from lambda function

通过使用 AWS Lambda 扩展,Elastic APM 代理可以将数据发送到本地 Lambda 扩展进程,该进程会异步地将数据转发到 APM 服务器。Lambda 扩展确保 Lambda 函数和 APM 服务器实例之间的任何潜在延迟都不会导致 Lambda 函数本身的请求流出现延迟。