# API 監視

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

API モニターは、設定した HTTP リクエストを 30 秒ごとにエンドポイントへ送り、到達できない、応答が遅い、誤ったデータが返るといったときにアラートを送ります。メソッド、ヘッダー、ボディ、認証を自由に設定でき、ステータスコード、JSON ボディ、ヘッダー、応答時間をアサーションできます。

[他のモニター](https://instatus.com/help/ja/monitoring)と同様に、API モニターが問題を検知したら、チームで協力して[インシデントを解決](https://instatus.com/help/ja/incident-response)し、必要に応じて[ステータスページ](https://instatus.com/help/ja/status-page)を更新できます。

| At a glance | Details |
| :-- | :-- |
| [チェックの実行間隔](https://instatus.com/help/ja/monitoring/api#詳細設定) | 30 秒ごと |
| [HTTP メソッド](https://instatus.com/help/ja/monitoring/api#リクエストの設定) | GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD |
| [リクエストボディ](https://instatus.com/help/ja/monitoring/api#リクエストの設定) | JSON、フォームデータ、GraphQL、プレーンテキスト |
| [認証](https://instatus.com/help/ja/monitoring/api#リクエストの設定) | Basic 認証、API キー、Bearer トークン |
| [アサーション](https://instatus.com/help/ja/monitoring/api#モニターが成功と判定される条件) | ステータスコード、応答時間、ボディ、JSON パス、ヘッダー |
| [実行地域](https://instatus.com/help/ja/monitoring/api#詳細設定) | アメリカ、カナダ、ヨーロッパ、アジア |

![モニター](https://instatus.com/help/monitors/item.png)

## API モニターは何をチェックしますか？

- 世界各地のさまざまな地域から、30 秒ごとに API エンドポイントをテストします。
- HTTP ステータスコード、JSON ボディ、ヘッダー、応答時間を検証します。
- カスタムヘッダー、クエリパラメーター、JSON ペイロードを含められます。
- エンドポイントがダウンしている、遅い、想定外の結果を返しているときに、すぐに通知を受け取れます。
- Slack、メール、SMS、電話、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、プレーンテキストをリクエストと一緒に送信します
- **認証:** Basic 認証、API キー、Bearer トークンによる認可を追加します
- **クエリパラメーター:** リクエスト URL にキーと値のペアを追加します
- **ヘッダー:** API リクエストに必要なカスタムヘッダーを追加します

### モニターが成功と判定される条件

API モニターは、指定したすべてのアサーションを満たしたときに成功します。  
次のアサーションを 1 つ以上設定できます。

- **ステータスコード:** 例 — 応答が `200 OK` である
- **応答時間:** 例 — `1 秒` 未満である
- **ボディに含まれる:** 例 — `"success": true`
- **JSON パス:** 例 — `data.status` が `"active"` である
- **ヘッダーに含まれる:** 例 — `Content-Type: application/json`

いずれかの条件を満たさない場合、モニターは**障害**とマークされ、[アラート設定](https://instatus.com/help/ja/monitoring/alerts)に従ってアラートが送信されます。

### 詳細設定

![モニターの詳細設定](https://instatus.com/help/monitors/advanced-settings.png)

- **表示名:** 見分けやすいように、モニターに分かりやすい名前を付けます。
- **チェックの実行間隔:** エンドポイントをテストする頻度を決めます。
- **実行地域:** テストを実行する地域を選びます (アメリカ、カナダ、ヨーロッパ、アジア)。
- **ステータスページに追加:** API の稼働率と応答の統計を公開表示します。
- **モニターが失敗したとき:** インシデントを作成する、購読者に通知する、ステータスページに公開する、といった動作を選べます。
- **モニターが復旧したとき:** インシデントを解決し、ステータスページを自動的に更新します。

おめでとうございます。最初の API モニターを追加できました！

- [cron 監視](https://instatus.com/help/ja/monitoring/cron): スケジュール実行のタスクやバックグラウンドジョブを監視する方法を学ぶ
