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 用户可以在其主要服务/应用程序进程旁边运行第二个进程。

image showing data flow from lambda function

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