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 用户可以在其主要服务/应用程序进程旁边运行第二个进程。
通过使用 AWS Lambda 扩展,Elastic APM 代理可以将数据发送到本地 Lambda 扩展进程,该进程会异步将数据转发到 APM Server。Lambda 扩展确保 Lambda 函数和 APM Server 实例之间的任何潜在延迟不会导致 Lambda 函数本身的请求流中的延迟。