

# OPS04-BP03 实施用户活动遥测
<a name="ops_telemetry_customer_telemetry"></a>

构建应用程序代码，使其能够发出关于用户活动的信息。用户活动的示例包括点击流或者开始、放弃和完成的事务。使用这些信息来帮助了解应用程序的使用方式和使用量模式，并确定需要在什么时候响应。通过捕获真实用户活动，您可以构建可用于监视和测试生产中工作负载的合成活动。

 **期望结果：** 
+  您的工作负载会发出有关所有应用程序中用户活动的遥测数据。 
+  使用合成用户活动在非高峰时段监控您的应用程序。 

 **常见反模式：** 
+ 您的开发人员部署了无需用户遥测的新功能。如果不询问客户，您就无法判断客户是否正在使用该功能。
+ 部署到前端应用程序之后，您会看到利用率得到提高。因为您缺少用户活动遥测，所以很难确定确切的问题。
+  在非高峰时段，应用程序中出现问题。因为您没有配置合成用户活动，所以直到早上用户上线时，您才注意到这个问题。 

 **建立此最佳实践的好处：** 
+  了解常见用户模式或意外行为，以便优化应用程序的功能以符合您的业务目标。 
+  从用户的角度监控应用程序，以便检测用户体验方面的问题，例如链接断开或点击响应缓慢 
+  跟踪受影响的用户所采取的步骤，确定问题的根本原因。 
+  合成用户活动可以在非高峰时段提供性能下降的早期预警信号，使您可以在实际用户受到影响之前采取纠正措施。 

 **在未建立这种最佳实践的情况下暴露的风险等级：**中等 

## 实施指导
<a name="implementation-guidance"></a>

 设计应用程序代码，使其能够发出关于用户活动的信息。使用这些信息来帮助了解应用程序的使用方式和使用量模式，并确定需要在什么时候响应。利用合成用户活动，在非高峰时段了解应用程序的性能。 

 **客户示例** 

 AnyCompany Retail 在应用程序的多个层实施用户活动遥测。前端遥测跟踪指针和移动事件，而后端微服务发出遥测跟踪事件，例如将商品添加到用户的购物车和结账。它们一起实现用户体验的可观测性。AnyCompany Retail 还使用合成用户遥测，在工作负载上的用户较少时发现问题。 

 **实施步骤** 

1.  检测您的应用程序，发出有关用户活动的遥测信息（指标、事件、日志和跟踪）。检测之后，在用户与用户界面交互时，前端组件自动发出遥测信息。后端应用程序发出有关用户事件和事务的遥测信息。 

   1.  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 可以洞察前端应用程序的最终用户体验。 

   1.  您可以使用[AWS适用于 OpenTelemetry 的 Distro](https://aws-otel.github.io/) 来检测应用程序并从应用程序捕获遥测信息。 

   1.  [Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html) 可以通过活动来分析用户行为，提供有关用户参与的洞察。 

   1.  购买了 Enterprise Support 服务的客户可以向他们的技术客户经理请求[建立监测策略研讨会](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/)。此研讨会帮助您为工作负载构建可观测性策略。 

1.  确立合成用户活动以监控您的应用程序。合成用户活动模拟用户操作，以便确认应用程序可以正常工作。 

   1.  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 可以使用金丝雀模拟用户活动。 

 **实施计划的工作量级别：**高。完全检测您的应用程序以收集用户活动遥测可能需要进行大量的开发工作。 

## 资源
<a name="resources"></a>

 **相关最佳实践：** 
+  [OPS04-BP01 实施应用程序遥测](ops_telemetry_application_telemetry.md) - 为了建立用户活动遥测，需要有应用程序遥测。 
+  [OPS04-BP02 实施和配置工作负载遥测](ops_telemetry_workload_telemetry.md) - 有些用户活动遥测可能还被视为工作负载遥测。 

 **相关文档：** 
+ [如何高效地监控应用程序](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/)

 **相关视频：** 
+ [AWS re:Invent 2020：在亚马逊监控生产服务](https://www.youtube.com/watch?v=hnPcf_Czbvw)
+ [AWS re:Invent 2021 - 使用 Amazon CloudWatch RUM 通过最终用户洞察优化应用程序](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+ [AWS 上的测试和监控 API - AWS 在线技术讲座](https://www.youtube.com/watch?v=VQM38CZyjFY)

 **相关示例：** 
+ [Amazon CloudWatch RUM Web 客户端](https://github.com/aws-observability/aws-rum-web)
+ [AWS适用于 OpenTelemetry 的 Distro](https://aws-otel.github.io/)
+ [使用 Amazon CloudWatch RUM 实施 Amplify 应用程序的真实用户监控](https://aws.amazon.com/blogs/mobile/implementing-real-user-monitoring-of-amplify-application-using-amazon-cloudwatch-rum/)
+ [可观测性研讨会](https://catalog.workshops.aws/observability/en-US/intro)

 **相关服务：** 
+ [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)
+ [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)
+ [ Amazon Pinpoint ](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html)