View a markdown version of this page

OPS04-BP01 实施应用程序遥测 - AWS Well-Architected Framework

OPS04-BP01 实施应用程序遥测

应用程序遥测是实现工作负载可观测性的基础。您的应用程序应该发送遥测数据,提供对应用程序状态以及所实现业务成果的洞察。从故障排除到衡量新功能的影响,应用程序遥测可以为您构建、操作和演进工作负载的方法提供信息。

应用程序遥测数据包括指标和日志。指标是诊断信息,例如您的脉搏和体温。所有指标结合在一起,用于描述应用程序的状态。收集一段时间的指标,以便用于制定基准和检测异常。日志是应用程序发送的消息,说明其内部状态或所发生的事件。所记录事件的例子包括错误代码、事务标识符以及用户操作。

期望结果:

  • 应用程序发送指标和日志,提供对其运行状况以及所取得业务成果的洞察。

  • 工作负载中所有应用程序的指标和日志集中存储。

常见反模式:

  • 您的应用程序无法发出遥测。出现问题时,只能通过客户获知。

  • 客户反映您的应用程序没有响应。由于没有遥测,如果不亲自使用应用程序来了解当前的用户体验,就无法确认问题的存在,也无法确定问题的特征。

建立此最佳实践的好处:

  • 您可以了解应用程序的运行状况、用户体验以及所取得的业务成果。

  • 您可以更快地对应用程序运行状况中的更改做出反应。

  • 您可以了解应用程序运行状况趋势。

  • 您可以做出明智的决定来改进应用程序。

  • 您可以更快地检测并解决应用程序问题。

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

实施指导

实施应用程序遥测由三个步骤组成:确定存储遥测数据的位置,确定描述应用程序状态的遥测数据,以及指示应用程序发送遥测数据。

客户示例

AnyCompany Retail 具有一个基于微服务的架构。作为其架构设计流程的一部分,他们确定了可以帮助了解各个微服务状态的应用程序遥测。例如,用户购物车服务可以针对商品添加到购物车、放弃购物车以及将商品添加到购物车所用时间长度等事件,发送遥测数据。所有微服务都将记录错误、警告和事务信息。遥测数据发送到 Amazon CloudWatch 进行存储和分析。

实施步骤

  1. 针对工作负载中的应用程序,确定用于存储遥测数据的集中位置。该位置应支持遥测数据收集和分析功能。异常检测和自动化洞察是推荐的功能。

    1. Amazon CloudWatch 会提供遥测数据收集、控制面板、分析和事件生成功能。

  2. 要确定您需要哪些遥测数据,首先要回答这个问题:我的应用程序的状态是什么? 您的应用程序应该会发送日志和指标,综合起来即可解答此问题。如果您无法利用现有的应用程序遥测解答这些问题,请与业务和工程设计利益相关方合作,创建遥测需求列表。

    1. 在确定和开发新应用程序遥测的过程中,您可以请求 AWS 账户团队向您提供专家技术建议。

  3. 在确定所需的其他应用程序遥测数据之后,与工程设计利益相关方合作来检测应用程序。

    1. 适用于 OpenTelemetry 的 AWS Distro 提供收集应用程序遥测数据的 API、库和代理。此示例展示了如何使用自定义指标检测 JavaScript 应用程序

    2. 如果您想了解 AWS 提供的可观察性服务,请观看可观测性研讨会,或向您的 AWS 账户团队请求支持。

    3. 如需更深入地了解应用程序遥测,请阅读 Amazon Builders' Library 中的《检测分布式系统的运营可见性》文章,该文章说明了亚马逊如何检测应用程序,并可供您用作开发自己的检测准则的指南。

实施计划的工作量级别:高。检测您的应用程序并集中存储遥测数据可能需要大量投资。

资源

相关最佳实践:

OPS04-BP02 实施和配置工作负载遥测 – 应用程序遥测是工作负载遥测的一部分。为了掌握工作负载的整体运行状况,您需要了解组成工作负载的个体应用程序的运行状况。

OPS04-BP03 实施用户活动遥测 – 用户活动遥测通常是应用程序遥测的子集。添加商品到购物车、点击流或者已完成事务等用户活动可以提供对用户体验的洞察。

OPS04-BP04 实施依赖项遥测 – 依赖项检查与应用程序遥测相关,可以在应用程序中检测。如果您的应用程序依赖于外部依赖项,例如 DNS 或数据库,则应用程序可以发送有关可访问性、超时和其他事件的指标和日志。

OPS04-BP05 实施事务可追溯性 – 跨工作负载跟踪事务需要各个应用程序发送有关如何处理共享事件的信息。个体应用程序处理这些事件的方式通过其应用程序遥测发送。

OPS08-BP02 定义工作负载指标 – 工作负载指标是工作负载运行状况的主要指标。主要应用程序指标是工作负载指标的一部分。

相关文档:

相关视频:

相关示例:

相关服务: