

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 警示 API
<a name="Grafana-API-Alerting"></a>

**注意**  
本節僅適用於傳統提醒。如需詳細資訊，請參閱[Grafana 提醒](alerts-overview.md)。

使用偏好設定 API 取得傳統儀表板提醒及其狀態的相關資訊。不過，您無法使用此 API 來修改提醒。若要建立新的提醒或修改提醒，您需要更新包含提醒的儀表板 JSON。

**注意**  
若要搭配 Amazon Managed Grafana 工作區使用 Grafana API，您必須擁有有效的 Grafana API 字符。您可以在 API 請求的 `Authorization` 欄位中包含此項目。如需如何建立權杖以驗證 API 呼叫的詳細資訊，請參閱 [使用字符進行驗證](authenticating-grafana-apis.md)。

## 取得提醒
<a name="Grafana-API-Alerting-get"></a>

```
GET /api/alerts
```

**範例請求**

```
GET /api/alerts HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**Querystring 參數：**

這些參數會用作 querystring 參數。例如：`/api/alerts?dashboardId=1`
+ **dashboardId** — 將回應限制為指定儀表板值中的提醒。您可以指定多個儀表板。例如 `dashboardId=23&dashboardId=35`
+ **panelId** — 將回應限制為儀表板上指定面板的提醒。
+ **query**— 將回應限制為具有類似此值之名稱的提醒。
+ **狀態** - 傳回具有下列一或多個警示狀態的警示：`ALL`、`alerting`、`ok`、`paused`、 `no_data`或 `pending`。若要指定多個狀態，請使用下列格式： `?state=paused&state=alerting`
+ **limit** — 將回應限制為 X 個警示。
+ **folderId** — 將回應限制為指定資料夾中儀表板的提醒。您可以指定多個資料夾。例如 `folderId=23&folderId=35`
+ **dashboardQuery** — 將回應限制為具有類似此值之儀表板名稱的提醒。
+ **dashboardTag** — 限制具有指定標籤之儀表板的回應提醒。若要使用多個標籤執行「AND」篩選，請多次指定標籤參數。例如 `dashboardTag=tag1&dashboardTag=tag2`。請注意，這些是 Grafana 標籤，而不是 AWS 標籤。

**回應範例**

```
HTTP/1.1 200
Content-Type: application/json

[
  {
    "id": 1,
    "dashboardId": 1,
    "dashboardUId": "ABcdEFghij"
    "dashboardSlug": "sensors",
    "panelId": 1,
    "name": "fire place sensor",
    "state": "alerting",
    "newStateDate": "2018-05-14T05:55:20+02:00",
    "evalDate": "0001-01-01T00:00:00Z",
    "evalData": null,
    "executionError": "",
    "url": "http://grafana.com/dashboard/db/sensors"
  }
]
```

## 依 ID 取得提醒
<a name="Grafana-API-Alerting-getbyId"></a>

```
GET /api/alerts/:id
```

**範例請求**

```
GET /api/alerts/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**回應範例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "id": 1,
  "dashboardId": 1,
  "dashboardUId": "ABcdEFghij"
  "dashboardSlug": "sensors",
  "panelId": 1,
  "name": "fire place sensor",
  "state": "alerting",
  "message": "Someone is trying to break in through the fire place",
  "newStateDate": "2018-05-14T05:55:20+02:00",
  "evalDate": "0001-01-01T00:00:00Z",
  "evalData": "evalMatches": [
    {
      "metric": "movement",
      "tags": {
        "name": "fireplace_chimney"
      },
      "value": 98.765
    }
  ],
  "executionError": "",
  "url": "http://grafana.com/dashboard/db/sensors"
}
```

**重要**  
`evalMatches` 只有在警示狀態變更時，資料才會快取在資料庫中。如果來自一個伺服器的資料先觸發提醒，並且在看到該伺服器離開提醒狀態之前，第二個伺服器也會進入會觸發提醒的狀態，`evalMatches`則資料中不會顯示第二個伺服器。

## 依 ID 暫停提醒
<a name="Grafana-API-Alerting-pausebyId"></a>

```
POST /api/alerts/:id/pause
```

**範例請求**

```
POST /api/alerts/1/pause HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "paused": true
}
```

`:id` 查詢參數是要暫停或未暫停的提醒 ID。 `paused` 可以是`true`暫停提醒或取消`false`暫停提醒。

**回應範例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "alertId": 1,
  "state":   "Paused",
  "message": "alert paused"
}
```