

# AWS 中的 API Gateway 监控工具


AWS 为您提供了各种可用于监控 API Gateway 的工具。您可以配置其中的一些工具来为您自动执行监控任务，但其他工具需要手动干预。建议您尽可能实现监控任务自动化。

## 中的自动监控工具AWS
自动监控工具

您可以使用以下自动化监控工具来监控 API Gateway，并在出现错误时进行报告：
+ **Amazon CloudWatch 警报** – 按您指定的时间段观察单个指标，并根据相对于给定阈值的指标值在若干时间段内执行一项或多项操作。具体操作是将一条通知已发送到某个 Amazon Simple Notification Service（Amazon SNS）主题或 Amazon EC2 Auto Scaling 策略。CloudWatch 告警不调用操作，因为这些操作处于特定状态；状态必须改变并保持指定时间。有关更多信息，请参阅[使用 Amazon CloudWatch 指标监控 REST API 执行](monitoring-cloudwatch.md)。
+ **Amazon CloudWatch Logs**：监控、存储和访问来自 AWS CloudTrail 或其他来源的日志文件。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的 [What is CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
+ **Amazon EventBridge（以前称为 CloudWatch Events）**– 匹配事件并将事件传送到一个或多个目标函数或流，来进行更改、捕获状态信息和采取纠正措施。有关更多信息，请参阅《EventBridge 用户指南》**中的 [What Is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)
+ **AWS CloudTrail 日志监控**：在账户间共享日志文件，通过将 CloudTrail 日志文件发送到 CloudWatch Logs 来进行实时监控，用 Java 编写日志处理应用程序，验证 CloudTrail 提供的日志文件未发生更改。有关更多信息，请参见《AWS CloudTrail 用户指南》**的[使用 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)。

## 手动监控工具
手动工具

监控 API Gateway 的另一个重要环节是手动监控 CloudWatch 警报未涵盖的那些项。API Gateway、CloudWatch 和其他AWS控制台控制面板提供您的AWS环境状态的概览视图。建议您还要查看有关 API 执行的日志文件。
+ API Gateway 控制面板显示指定时间段内给定 API 阶段的以下统计数据：
  + **API 调用**
  + **缓存命中**（仅当启用 API 缓存时）。
  + **缓存未命中**（仅当启用 API 缓存时）。
  + **延迟**
  + **集成延迟**
  + **4XX 错误**
  + **5XX 错误**
+ CloudWatch 主页显示：
  + 当前警报和状态
  + 告警和资源图表
  + 服务运行状况

  此外，还可以使用 CloudWatch 执行以下操作：
  + 创建[自定义控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)以监控您关心的服务
  + 绘制指标数据图，以排除问题并弄清楚趋势
  + 搜索并浏览您所有的 AWS 资源指标
  + 创建和编辑警报以接收有关问题的通知

## 创建 CloudWatch 警报以监控 API Gateway 指标
创建警报

您可以创建在警报改变状态时发送 Amazon SNS 消息的 CloudWatch 警报。警报会每隔一段时间（由您指定）监控一个指标，并根据相对于给定阈值的指标值每隔若干个时间段执行一项或多项操作。操作是一个发送到 Amazon SNS 主题或自动扩缩策略的通知。警报只会调用操作进行持续的状态变更。CloudWatch 告警不调用操作，因为这些操作处于特定状态；状态必须改变并保持指定时间。