

# OPS 8  您如何了解工作负载的运行状况？
<a name="w2aac19b5b9b5"></a>

 定义、记录和分析指标以便了解工作负载事件，从而采取适当的措施。 

**Topics**
+ [OPS08-BP01 识别关键性能指标](ops_workload_health_define_workload_kpis.md)
+ [OPS08-BP02 定义工作负载指标](ops_workload_health_design_workload_metrics.md)
+ [OPS08-BP03 收集和分析工作负载指标](ops_workload_health_collect_analyze_workload_metrics.md)
+ [OPS08-BP04 建立工作负载指标基准](ops_workload_health_workload_metric_baselines.md)
+ [OPS08-BP05 了解工作负载的预期活动模式](ops_workload_health_learn_workload_usage_patterns.md)
+ [OPS08-BP06 在工作负载成果面临风险时发出提醒](ops_workload_health_workload_outcome_alerts.md)
+ [OPS08-BP07 在检测到工作负载异常时发出提醒](ops_workload_health_workload_anomaly_alerts.md)
+ [OPS08-BP08 验证实现的成果以及 KPI 和指标的有效性](ops_workload_health_biz_level_view_workload.md)

# OPS08-BP01 识别关键性能指标
<a name="ops_workload_health_define_workload_kpis"></a>

 根据期望的业务成果（例如，订单率、客户保留率和利润与运营开支）和客户成果（例如，客户满意度）识别识别关键性能指标 (KPI)。评估 KPI 以便确定工作负载是否成功。 

 **常见反模式：** 
+  业务领导会问您，工作负载在满足业务需求方面成效如何，但却没有确定成功的参考框架。 
+  您无法确定您为组织运行的现有商用应用程序是否具有成本效益。 

 **建立此最佳实践的好处：** 通过识别识别关键性能指标，您可以将业务成果的实现情况作为对工作负载运行状况和是否成功的测试。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  识别关键性能指标：根据所需的业务成果和客户成果识别关键性能指标（KPI，Key Performance Indicator）。评估 KPI 以便确定工作负载是否成功。 

# OPS08-BP02 定义工作负载指标
<a name="ops_workload_health_design_workload_metrics"></a>

 定义工作负载指标来衡量 KPI（例如，放弃的购物车、下达的订单、成本、价格和分配的工作负载费用）的完成情况。定义工作负载指标以衡量工作负载的运行状况（例如，接口响应时间、错误率、提出的请求数、完成的请求数和利用率）。评估指标以便确定工作负载是否实现所需成果，并了解工作负载的运行状况。 

 您应将日志数据发送到像 CloudWatch Logs 这样的服务，并根据对必要日志内容的观察生成指标。 

 CloudWatch 具有一些专业功能，例如 [适用于 .NET 和 SQL Server 的 Amazon CloudWatch Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-what-is.html) 和 [Container Insights，](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) 这些功能可通过识别和设置专门支持的应用程序资源和技术堆栈的关键指标、日志和告警来为您提供帮助。 

 **常见反模式：** 
+  您定义了标准指标，这些指标没有关联任何 KPI，也并非针对任何工作负载量身定制。 
+  您的指标计算中存在会产生无效结果的错误。 
+  您没有为工作负载定义任何指标。 
+  您只衡量可用性。 

 **建立此最佳实践的好处：** 通过定义和评估工作负载指标，您可以确定工作负载的运行状况并衡量业务成果的实现情况。 

 **未建立此最佳实践暴露的风险等级：** 高 

## 实施指导
<a name="implementation-guidance"></a>
+  定义工作负载指标：定义工作负载指标来衡量 KPI 的实现情况。定义工作负载指标来衡量工作负载及其各个组件的运行状况。评估指标以便确定工作负载是否实现所需成果，并了解工作负载的运行状况。 
  +  [发布自定义指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 
  +  [搜索和筛选日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) 
  +  [Amazon CloudWatch 指标和维度参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 

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

 **相关文档：** 
+  [Amazon CloudWatch 指标和维度参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
+  [发布自定义指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 
+  [搜索和筛选日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) 

# OPS08-BP03 收集和分析工作负载指标
<a name="ops_workload_health_collect_analyze_workload_metrics"></a>

 定期主动检查各种指标，以便发现趋势并确定哪里需要做出适当响应。 

 您应汇总应用程序、工作负载组件、服务以及对服务（如 CloudWatch Logs）的 API 调用的日志数据。通过对必要的日志内容进行观察生成指标，从而深入了解运营活动的表现。 

 在 AWS 上，您可以使用 [Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)的机器学习功能分析工作负载指标并识别运营问题。AWS DevOps Guru 会提供运营问题通知，并给出 [有针对性的主动](https://docs.aws.amazon.com/devops-guru/latest/userguide/view-insights.html) 建议，以解决问题并保持应用程序正常运行。 

 在 AWS 责任共担模式中，部分监控会通过以下控制面板提供给您： [AWS Health Dashboard](https://aws.amazon.com/premiumsupport/technology/personal-health-dashboard/)。此控制面板会在 AWS 遇到可能会影响您的事件时提供提醒和修正指导。拥有商业支持和企业支持订阅的客户还可以获取 [AWS Health API](https://docs.aws.amazon.com/health/latest/ug/getting-started-api.html)，从而实现与事件管理系统的集成。 

 在 AWS 上，您可以 [将您的日志数据导出到 Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html) 或者 [直接将日志发送](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Sending-Logs-Directly-To-S3.html) 到 [Amazon S3](https://aws.amazon.com/s3/) 以便长期存储。使用 [AWS Glue](https://aws.amazon.com/glue/)，您可以在 Amazon S3 中发现并准备您的日志数据以供分析，并将相关元数据存储在以下位置： [AWSAWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html)。 [Amazon Athena](https://aws.amazon.com/athena/)通过与 AWS Glue 的原生集成，可用于分析您的日志数据，并使用标准 SQL 进行查询。使用像 [Quick](https://aws.amazon.com/quicksight/) 这样的商业智能工具，您可以直观显示、浏览和分析您的数据。 

 另一种 [解决方案](https://aws.amazon.com/solutions/centralized-logging/?did=sl_card&trk=sl_card) 是使用 [Amazon OpenSearch Service](https://aws.amazon.com/elasticsearch-service/) 和 [OpenSearch 控制面板](https://aws.amazon.com/elasticsearch-service/the-elk-stack/kibana/) 来收集、分析和显示跨多个账户和 AWS 区域的 AWS 日志。 

 **常见反模式：** 
+  网络设计团队询问您当前的网络带宽利用率。您提供当前指标，网络利用率为 35%。他们降低了电路容量，这样可以节省成本，但是导致了大量的连接问题，这是因为您的时间点测量没有反映出利用率的趋势。 
+  您的路由器出现故障。它一直以越来越高的频率记录非关键内存错误，直到出现故障。您没有发现这种趋势，因此没有在路由器引起服务中断之前更换故障内存。 

 **建立此最佳实践的好处：** 通过收集和分析工作负载指标，您可以了解工作负载的运行状况，并可以洞悉可能影响工作负载或业务成果完成情况的趋势。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  收集和分析工作负载指标：定期主动检查各种指标，以便发现趋势并确定哪里需要做出适当响应。 
  +  [使用 Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
  +  [Amazon CloudWatch 指标和维度参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
  +  [使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 

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

 **相关文档：** 
+  [Amazon Athena](https://aws.amazon.com/athena/) 
+  [Amazon CloudWatch 指标和维度参考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
+  [Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 
+  [AWS Glue](https://aws.amazon.com/glue/) 
+  [AWSAWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html) 
+  [Amazon OpenSearch Service](https://aws.amazon.com/elasticsearch-service/) 
+  [AWS Health Dashboard](https://aws.amazon.com/premiumsupport/technology/personal-health-dashboard/) 
+  [Quick](https://aws.amazon.com/quicksight/) 
+  [使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 
+  [使用 Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 

# OPS08-BP04 建立工作负载指标基准
<a name="ops_workload_health_workload_metric_baselines"></a>

 建立指标基准以便提供预期值，作为比较和识别性能不足和性能过剩组件的依据。确定改进、调查和干预的阈值。 

 **常见反模式：** 
+  服务器以 95％ 的 CPU 利用率运行，您被问及这种情况是好是坏。由于没有为该服务器的 CPU 利用率设定基准，因此您也不知道是好是坏。 

 **建立此最佳实践的好处：** 通过定义基准指标值，您可以评估当前指标值和指标趋势，从而确定是否需要采取措施。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  建立工作负载指标基准：建立工作负载指标基准，以便提供期望值作为比较依据。 
  +  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 

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

 **相关文档：** 
+  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 

# OPS08-BP05 了解工作负载的预期活动模式
<a name="ops_workload_health_learn_workload_usage_patterns"></a>

 通过建立工作负载活动的模式来识别异常行为，以便您可以在需要时做出适当的响应。 

 CloudWatch 通过 [CloudWatch 异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) 功能来应用统计和机器学习算法，以生成代表正常指标行为的预期值范围。 

 [Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 可通过事件关联、日志分析并应用机器学习来分析工作负载遥测数据，用于确定异常行为。在检测到意外行为时，它会提供 [相关的指标和事件，](https://docs.aws.amazon.com/devops-guru/latest/userguide/understanding-insights-console.html) 并给出应对该行为的推荐方案。 

 **常见反模式：** 
+  您正在查看网络利用率日志，发现网络利用率在上午 11:30 至下午 1:30 之间上升，然后在下午 4:30 至 6:00 之间再次上升。您不知道这是否正常。 
+  您的 Web 服务器在每天凌晨 3:00 重新启动。您不知道这是否是预期行为。 

 **建立此最佳实践的好处：** 通过学习行为模式，您可以识别意外行为并在必要时采取措施。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  了解工作负载的预期活动模式：建立工作负载活动模式以便确定行为何时不符合预期值，从而根据需要做出适当响应。 

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

 **相关文档：** 
+  [Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 
+  [CloudWatch 异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) 

# OPS08-BP06 在工作负载成果面临风险时发出提醒
<a name="ops_workload_health_workload_outcome_alerts"></a>

 在工作负载成果面临风险时发出提醒，从而在必要时做出适当响应。 

 理想情况下，您之前已经确定能够作为发出提醒依据的指标阈值，或可以用于触发自动响应的事件。 

 在 AWS 上，您可以使用 [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 创建金丝雀脚本，通过执行与客户相同的操作，监控您的端点和 API。通过生成的遥测数据以及 [发掘的洞察，](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Details.html) 您可以在客户受到损害之前确定问题。 

 您也可以使用 [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 和专门构建的查询语言以交互方式搜索和分析您的日志数据。CloudWatch Logs Insights 自动 [发现](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html) AWS 服务日志中的字段以及 JSON 格式的自定义日志事件。它会随您的日志量和查询复杂性而扩展，并在数秒内为您提供答案，从而帮助您搜索引发事件的因素。 

 **常见反模式：** 
+  您的网络断开连接。没有人发现这一情况。没有人尝试确定原因或采取措施来恢复网络连接。 
+  安装补丁后，您的持久性实例开始无法访问，这会对用户造成影响。您的用户创建了支持案例。没有人收到通知。没有人采取措施。 

 **建立此最佳实践的好处：** 如果可以发现业务成果处于危险之中并提醒需要采取措施，您就有机会预防意外事件的发生或者减轻意外事件的影响。 

 **未建立此最佳实践暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  在工作负载成果面临风险时发出提醒：在工作负载成果面临风险时发出提醒，以便您能够根据需要做出适当响应。 
  +  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 
  +  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
  +  [使用 Amazon SNS 通知调用 Lambda 函数](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html) 

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

 **相关文档：** 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 
+  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
+  [使用 Amazon SNS 通知调用 Lambda 函数](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html) 
+  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 

# OPS08-BP07 在检测到工作负载异常时发出提醒
<a name="ops_workload_health_workload_anomaly_alerts"></a>

 在检测到工作负载异常时发出提醒，从而在必要时做出适当响应。 

 您对一段时间内工作负载指标的分析可能会建立行为模式，您可以对这些模式进行充分量化，以定义事件或发出警报作为响应。 

 经过训练后， [CloudWatch 异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) 功能可用于 [对](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Anomaly_Detection_Alarm.html) 检测到的异常发出警报，或将期望值叠加到指标数据 [图表](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html#create-metric-graph) 上，以进行持续的比较。 

 **常见反模式：** 
+  您零售网站的销量突然急剧增加。没有人发现这一情况。没有人尝试找出导致这种激增的原因。没有人采取措施来让客户在额外负载下仍然保持优质体验。 
+  应用补丁后，您的持久性服务器频繁重启，这会对用户造成影响。通常情况下，服务器最多重启三次。没有人发现这一情况。没有人尝试确定发生这种情况的原因。 

 **建立此最佳实践的好处：** 通过了解工作负载行为的模式，您可以发现意外行为，并在必要时采取措施。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  在检测到工作负载异常时发出提醒：在检测到工作负载异常时发出提醒，以便您能够根据需要做出适当响应。 
  +  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 
  +  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
  +  [使用 Amazon SNS 通知调用 Lambda 函数](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html) 

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

 **相关文档：** 
+  [创建 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
+  [CloudWatch 异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) 
+  [使用 Amazon SNS 通知调用 Lambda 函数](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html) 
+  [什么是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 

# OPS08-BP08 验证实现的成果以及 KPI 和指标的有效性
<a name="ops_workload_health_biz_level_view_workload"></a>

 在业务层面查看工作负载的运行情况，以便确定自己是否满足需求，并确定需要改进哪些方面才能实现业务目标。验证 KPI 和指标的有效性并在需要时进行修改。 

 AWS 还通过 AWS 服务 API 和 SDK（例如，Grafana、Kibana 和 Logstash）支持第三方日志分析系统和商业智能工具。 

 **常见反模式：** 
+  从未将页面响应时间视作影响客户满意度的因素。您从未对页面响应时间设定指标或阈值。您的客户投诉称响应缓慢。 
+  您尚未达到最低响应时间目标。为了缩短响应时间，您已经纵向扩展了应用程序服务器。现在，响应时间缩短，远远超出了目标；而且还有大量已付费的未使用容量。 

 **建立此最佳实践的好处：** 通过审核和修订 KPI 及指标，您可以了解工作负载如何支持业务成果的实现，并可以确定需要对哪些方面进行改进以实现业务目标。 

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

## 实施指导
<a name="implementation-guidance"></a>
+  验证实现的成果以及 KPI 和指标的有效性：在业务层面查看工作负载运营情况，以便帮助您确定自己是否满足需求，并确定需要改进哪些方面才能实现业务目标。验证 KPI 和指标的有效性并在需要时进行修改。 
  +  [使用 Amazon CloudWatch 控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
  +  [什么是日志分析？](https://aws.amazon.com/log-analytics/) 

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

 **相关文档：** 
+  [使用 Amazon CloudWatch 控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
+  [什么是日志分析？](https://aws.amazon.com/log-analytics/) 