

# 创建用于 Web 应用程序的 CloudWatch RUM 应用程序监视器
<a name="CloudWatch-RUM-get-started-create-app-monitor"></a>

要在应用程序中开始使用 CloudWatch RUM，您可以创建*应用程序监控*。创建应用程序监视器后，RUM 会生成一个可粘贴到应用程序中的 JavaScript 代码片段。该片段会提取 RUM 客户端代码。RUM 客户端会从应用程序的用户会话中捕获数据并将其发送到 RUM。

## 为 Web 平台创建应用程序监视器
<a name="web-platform-app-monitor"></a>

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Application Signals**、**RUM**。

1. 选择 **Add app monitor**（添加应用程序监控）。

1. 在 **App monitor name**（应用程序监控名称）中，输入在 CloudWatch RUM 控制台中用于识别此应用程序监控的名称。

1. 选择 **Web** 作为平台。

1. 在**应用程序域列表**中，输入您的应用程序拥有管理权限的注册域名。您还可以使用通配符 `*` 允许任何子域或顶级域（例如，\$1.amazon.com、amazon.\$1、\$1.amazon.\$1）。

1. 在 **Configure RUM data collection**（配置 RUM 数据收集）中，指定是否希望应用程序监控收集以下每项内容：
   + **Performance telemetry**（性能遥测）– 收集有关页面加载和资源加载时间的信息
   + **JavaScript errors**（JavaScript 错误）– 收集应用程序引发的未处理 JavaScript 错误的信息

     您可以选择**取消压缩 JavaScript 错误堆栈跟踪**来调试未压缩的 JavaScript 错误。要使用此功能，请将源映射文件上传到 Amazon S3 存储桶或文件夹，并提供 Amazon S3 URI。启用后，RUM 将使用这些源映射，并添加未压缩的堆栈跟踪来丰富 JavaScript 错误事件。请注意，启用后，此功能仅处理新的 JavaScript 错误事件，而不能用于以前收集的数据。有关更多信息，请参阅 [启用 JavaScript 错误堆栈跟踪的取消压缩功能](CloudWatch-RUM-JavaScriptStackTraceSourceMaps.md)。
   + **HTTP errors**（HTTP 错误）– 收集应用程序引发的 HTTP 错误的信息

   选择这些选项可以提供有关应用程序的更多信息，但也会生成更多 CloudWatch RUM 事件，从而产生更多的费用。

   如果未选择以上任何选项，应用程序监控仍会收集会话开启事件和页面 ID，以便您可以查看有多少用户正在使用应用程序，包括按操作系统类型和版本、浏览器类型和版本、设备类型和位置的细分。

1. 如果您希望能够从采样的用户会话中收集用户 ID 和会话 ID，选择 **Check this option to allow the CloudWatch RUM Web Client to set cookies**（选中此选项以允许 CloudWatch RUM Web 客户端设置 Cookie）。用户 ID 由 RUM 随机生成。有关更多信息，请参阅 [CloudWatch RUM Web 客户端 Cookie（或类似技术）](CloudWatch-RUM-privacy.md#CloudWatch-RUM-cookies)。

1. 在 **Session samples**（会话样本）中，输入将用于收集 RUM 数据的用户会话百分比。默认值为 100%。减少此数字将提供更少的数据，但可以降低费用。有关 RUM 定价的更多信息，请参阅 [RUM 定价](CloudWatch-RUM.md#RUMpricing)。

1. 为 CloudWatch RUM 收集的终端用户数据将保留 30 天，然后删除。如果您想在 CloudWatch Logs 中保留 RUM 事件的副本并配置这些副本的保留时间，请选择 **Data storage**（数据存储）下的 **Check this option to store your application telemetry data in your CloudWatch Logs account**（选中此选项以将应用程序遥测数据存储在 CloudWatch Logs 账户中）。预设情况下，CloudWatch Logs 日志组会将数据保留 30 天。您可以在 CloudWatch Logs 控制台中调整保留期。

1. （可选）选择向您的应用程序监测仪添加基于资源的策略，以控制谁可以向您的应用程序监测仪发送 `PutRumEvents` 请求。如果您选择**创建公共策略**，则资源策略将附加到您的应用程序监测仪，以便任何人都能向您的应用程序监测仪发送 `PutRumEvents` 请求。有关此方法的更多信息，请参阅[将基于资源的策略与 CloudWatch RUM 结合使用](CloudWatch-RUM-resource-policies.md)。

1. 如果您在上一步中附加了基于资源的策略，则无需使用 Amazon 凭证向 CloudWatch RUM 签署请求，并且可以跳过设置授权。否则，对于**授权**，请指定是使用新的或现有的 Amazon Cognito 身份池，还是使用其他身份提供者。创建新的身份池是最简单的选择，无需其他设置步骤。有关详细信息，请参阅 [授权 Web 应用程序将数据发送到 Amazon](CloudWatch-RUM-get-started-authorization.md)。

   创建新的 Amazon Cognito 身份池需要管理权限。有关更多信息，请参阅 [使用 CloudWatch RUM 的 IAM 策略](CloudWatch-RUM-permissions.md)。

1. （可选）预设情况下，您将 RUM 代码段添加到应用程序时，Web 客户端会将 JavaScript 标签注入到应用程序所有页面的 HTML 代码中以监控使用情况。要更改此选项，请选择 **Configure pages**（配置页面），然后选择 **Include only these pages**（仅包含这些页面）或 **Exclude these pages**（排除这些页面）。然后指定要包含或排除的页面。要指定包含或排除的页面，请输入其完整 URL。要指定其他页面，请选择 **Add URL**（添加 URL）。

1. 要启用 Amazon X-Ray 跟踪应用程序监控采样的用户会话，选择 **Active tracing**（活动跟踪），然后选择 **Trace my service with Amazon X-Ray（使用跟踪我的服务）。**

   如果选择此项，将会跟踪在应用程序监控采样用户会话期间发出的 `XMLHttpRequest` 和 `fetch` 请求。然后，您可在 RUM 控制面板、X-Ray 跟踪地图和跟踪详细信息页面中查看来自这些用户会话的跟踪和分段。为应用程序启用相应功能后，这些用户会话还将作为客户端页面显示在 [Application Signals](CloudWatch-Application-Monitoring-Sections.md) 中。

   通过对 CloudWatch RUM Web 客户端进行其他配置更改，您可以向 HTTP 请求添加 X-Ray 跟踪标头，以启用到下游 Amazon 托管式服务的用户会话端到端跟踪。有关更多信息，请参阅 [启用 X-Ray 端到端跟踪](CloudWatch-RUM-modify-snippet.md#CloudWatch-RUM-xraytraceheader)。

1. （可选）要向应用程序监控添加标签，请选择 **Tags**（标签）、**Add new tag**（添加新标签）。

   然后，对于 **Key**（键），输入标签的名称。您可以在 **Value** (值) 中添加可选的标签值。

   要添加其他标签，请再次选择 **Add new tag**（添加新标签）。

   有关更多信息，请参阅[标记 Amazon 资源](https://docs.amazonaws.cn/general/latest/gr/aws_tagging.html)。

1. 选择 **Add app monitor**（添加应用程序监控）。

1. 在 **Sample code**（示例代码）部分，您可以复制要使用的代码段以添加到您的应用程序当中。我们建议您选择 **JavaScript** 或 **TypeScript**，使用 NPM 安装 CloudWatch RUM Web 客户端，并将其作为 JavaScript 模块。

   或者，您可以选择 **HTML** 来使用内容分发网络（CDN），以便安装 CloudWatch RUM Web 客户端。使用 CDN 的缺点在于，Web 客户端常被广告拦截器拦截。

1. 选择 **Copy**（复制）或 **Download**（下载），然后选择 **Done**（完成）。