# API 监控

Source: https://instatus.com/help/zh/monitoring/api

API 监控每 30 秒向端点发送一次可配置的 HTTP 请求，在端点不可达、响应缓慢或返回错误数据时通知你。你可以控制请求方法、请求头、请求体和认证方式，并对状态码、JSON 响应体、响应头和响应时间做断言。

和[其他监控](https://instatus.com/help/zh/monitoring)一样，如果 API 监控发现问题，你可以和团队一起[解决该事件](https://instatus.com/help/zh/incident-response)，也可以选择更新你的[状态页](https://instatus.com/help/zh/status-page)。

| At a glance | Details |
| :-- | :-- |
| [检测频率](https://instatus.com/help/zh/monitoring/api#高级设置) | 每 30 秒一次 |
| [HTTP 方法](https://instatus.com/help/zh/monitoring/api#请求配置) | GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD |
| [请求体](https://instatus.com/help/zh/monitoring/api#请求配置) | JSON、表单数据、GraphQL、纯文本 |
| [认证](https://instatus.com/help/zh/monitoring/api#请求配置) | Basic 认证、API 密钥、Bearer 令牌 |
| [断言](https://instatus.com/help/zh/monitoring/api#满足以下条件时视为监控成功) | 状态码、响应时间、响应体、JSON 路径、响应头 |
| [检测地区](https://instatus.com/help/zh/monitoring/api#高级设置) | 美国、加拿大、欧洲、亚洲 |

![监控](https://instatus.com/help/monitors/item.png)

## API 监控检测什么？

- 从全球多个地区每 30 秒测试一次你的 API 端点。
- 校验 HTTP 状态码、JSON 响应体、响应头和响应时间。
- 附带自定义请求头、查询参数或 JSON 负载。
- 端点出现故障、变慢或返回意外结果时立即收到通知。
- 支持 Slack、邮件、短信、电话呼叫、webhook 等多种渠道。

## 如何添加 API 监控？

进入你的项目 → 监控 → 添加监控，选择 **API**，填入端点 URL，配置请求，并设置端点正常时应满足的断言。

![添加 API 监控](https://instatus.com/help/monitors/API.png)

### 监控类型

选择 **API** 作为监控类型。

![API 监控类型](https://instatus.com/help/monitors/type-api.png)

填入你要监控的端点 URL——例如  
`https://api.yourservice.com/v1/users`。

### 请求配置

你可以完全自定义 API 请求：

- **HTTP 方法：**`GET`、`POST`、`PUT`、`PATCH`、`DELETE`、`OPTIONS` 或 `HEAD`
- **请求体：**随请求发送 JSON、表单数据、GraphQL 或纯文本
- **认证：**添加基本认证、API 密钥或 Bearer 令牌授权
- **查询参数：**在请求 URL 后追加键/值对
- **请求头：**添加 API 请求所需的自定义请求头

### 满足以下条件时视为监控成功

只有当所有指定的断言都满足时，API 监控才算成功。  
你可以设置以下一个或多个断言：

- **状态码：**例如响应为 `200 OK`
- **响应时间：**例如低于 `1 秒`
- **响应体包含：**例如 `"success": true`
- **JSON 路径：**例如 `data.status` 等于 `"active"`
- **响应头包含：**例如 `Content-Type: application/json`

只要其中任何一个条件不满足，监控就会被标记为**故障**，并按照你的[告警设置](https://instatus.com/help/zh/monitoring/alerts)发送告警。

### 高级设置

![监控高级设置](https://instatus.com/help/monitors/advanced-settings.png)

- **易记名称：**给监控起一个有辨识度的名称，方便识别。
- **检测间隔：**决定测试端点的频率。
- **检测地区：**选择测试地区（美国、加拿大、欧洲、亚洲）。
- **添加到状态页：**公开展示 API 的正常运行时间和响应统计。
- **当监控出现故障时：**创建事件、通知订阅者，或发布到你的状态页。
- **当监控恢复时：**解决事件并自动更新你的状态页。

恭喜，你已经添加了第一个 API 监控！

- [Cron 监控](https://instatus.com/help/zh/monitoring/cron): 了解如何监控定时任务和后台作业
