

# 使用 Amazon CloudWatch Application Signals 监控应用程序性能
<a name="monitoring-application-signals"></a>

Amazon CloudWatch Application Signals 是一种应用程序性能监控（APM）解决方案，它使开发人员和操作员能够监控使用 Lambda 构建的无服务器应用程序的运行状况和性能。您可以从 Lambda 控制台一键启用 Application Signals，并且无需向 Lambda 函数添加任何检测代码或外部依赖项。启用 Application Signals 后，您可以在 CloudWatch 控制台中查看所有收集的指标和跟踪。本页介绍如何为您的应用程序启用和查看 Application Signals 遥测数据。

**Topics**
+ [Application Signals 如何与 Lambda 集成](#monitoring-application-signals-how)
+ [定价](#monitoring-application-signals-pricing)
+ [支持的运行时](#monitoring-application-signals-runtimes)
+ [在 Lambda 控制台中启用 Application Signals](#monitoring-application-signals-console)
+ [使用 Application Signals 控制面板](#monitoring-application-signals-dashboard)

## Application Signals 如何与 Lambda 集成
<a name="monitoring-application-signals-how"></a>

Application Signals 使用通过 [Lambda 层](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)提供的增强型 [AWS Distro for OpenTelemetry（ADOT）](https://aws-otel.github.io/)库自动检测 Lambda 函数。Application Signals 读取层收集的数据，并生成包含应用程序关键性能指标的控制面板。

您可以通过在 Lambda 控制台中[启用 Application Signals](#monitoring-application-signals-console)，一键附加此层。从控制台启用 Application Signals 时，Lambda 会代表您执行以下操作：
+ 更新函数的执行角色，以包含 `CloudWatchLambdaApplicationSignalsExecutionRolePolicy`。[此策略](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchLambdaApplicationSignalsExecutionRolePolicy.html)提供对用于 Application Signals 的 AWS X-Ray 和 CloudWatch 日志组的写入权限。
+ 为您的函数添加一个层，该层会自动检测该函数以捕获遥测数据，例如请求、可用性、延迟、错误和故障。为确保 Application Signals 正常运行，请从您的函数中移除任何现有的 X-Ray SDK 检测代码。自定义 X-Ray SDK 检测代码可能会干扰层提供的检测。
+ 将 `AWS_LAMBDA_EXEC_WRAPPER` 环境变量添加到您的函数，并将其值设置为 `/opt/otel-instrument`。此环境变量会修改函数的启动行为以利用 Application Signals 层，并且是正确检测所必需的。如果此环境变量已存在，则请确保将其设置为必需值。

## 定价
<a name="monitoring-application-signals-pricing"></a>

对 Lambda 函数使用 Application Signals 会产生费用。有关定价信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

## 支持的运行时
<a name="monitoring-application-signals-runtimes"></a>

Application Signals 与 Lambda 的集成适用于以下运行时：
+ .NET 8
+ Java 11
+ Java 17
+ Java 21
+ Python 3.10
+ Python 3.11
+ Python 3.12
+ Python 3.13
+ Node.js 18.x
+ Node.js 20.x
+ Node.js 22.x

## 在 Lambda 控制台中启用 Application Signals
<a name="monitoring-application-signals-console"></a>

您可以使用[支持的运行时](#monitoring-application-signals-runtimes)在任何现有 Lambda 函数上启用 Application Signals。以下步骤介绍如何在 Lambda 控制台中一键启用 Application Signals。

**在 Lambda 控制台中启用 Application Signals**

1. 打开 Lamba 控制台的[函数页面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 选择您的函数。

1. 选择 **Configuration** 选项卡。

1. 在左侧菜单中，选择**监控和操作工具**。

1. 在**其他监控工具**窗格中，选择**编辑**。

1. 在 **CloudWatch Application Signals 和 AWS X-Ray** 下及 **Application Signals** 下，选择**启用**。

1. 选择**保存**。

如果这是您首次为函数启用 Application Signals，则还必须在 CloudWatch 控制台中为 Application Signals 进行一次性服务发现设置。完成此一次性服务发现设置后，Application Signals 会在所有区域自动发现您为其启用 Application Signals 的任何其他 Lambda 函数。

**注意**  
调用更新的函数后，服务数据最多可能需要 10 分钟才能开始显示在 CloudWatch 控制台的 Application Signals 控制面板中。

## 使用 Application Signals 控制面板
<a name="monitoring-application-signals-dashboard"></a>

为函数启用 Application Signals 后，您可以在 CloudWatch 控制台中可视化应用程序指标。您可以通过以下步骤从 Lambda 控制台快速查看关联的 Application Signals 控制面板：

**查看您的函数的 Application Signals 控制面板**

1. 打开 Lamba 控制台的[函数页面](https://console.aws.amazon.com/lambda/home#/functions)。

1. 选择您的函数。

1. 选择**监控**选项卡。

1. 选择**查看 Application Signals** 按钮。这会将您直接引导至 CloudWatch 控制台中有关服务的 Application Signals 概述。

例如，以下屏幕截图显示了函数在 10 分钟时段内的延迟、请求数、可用性、故障率和错误率的指标。

![\[\]](http://docs.aws.amazon.com/zh_cn/lambda/latest/dg/images/monitoring-application-signals-dashboard.png)


为了充分利用与 Application Signals 的集成，您可以为应用程序创建服务级别目标（SLO）。例如，您可以创建延迟 SLO 来确保您的应用程序可快速响应用户请求，并创建可用性 SLO 来跟踪正常运行时间。在因性能下降或中断而对用户造成影响之前，SLO 可以帮助您对此进行检测。有关更多信息，请参阅《Amazon CloudWatch 用户指南》中的[服务级别目标（SLO）](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html)。