+++
title = "Предупреждения HTTP API "
description = "Harvest Предупреждения HTTP API"
keywords = ["harvest", "http", "documentation", "api", "alerting", "alerts"]
aliases = ["/docs/harvest/latest/http_api/alerting/"]
+++

# Оповещающий API

Вы можете использовать API оповещения для получения информации о предупреждениях и их состояниях, но этот API нельзя использовать для изменения предупреждения.
Чтобы создавать новые оповещения или изменять их, вам необходимо обновить json панели мониторинга, содержащий предупреждения.

## Получать оповещения

`GET /api/оповещения/`

**Пример Запроса**:

```http
GET /api/alerts HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
Параметры строки запроса:

  Эти параметры используются в качестве параметров строки запроса. Например:

  `/api/оповещения?Идентификатор панели управления=1`

  - **dashboardId** – Ограничить ответ на оповещения в указанных приборных панелях. Вы можете указать несколько панелей мониторинга, например dashboardId=23 и dashboardId=35.
  - ** Идентификатор панели ** – Ограничение ответа на оповещение для указанной панели на панели мониторинга.
  - ** запрос ** - Ограничить ответ на оповещения, имеющие имя, подобное этому значению.
  - ** состояние ** - Возвращает предупреждения с одним или несколькими из следующих состояний предупреждения: "ВСЕ", "no_data", "приостановлено", "оповещение", "ок", "в ожидании`. Чтобы указать несколько состояний, используйте следующий формат: `?state=приостановлено&state=оповещение`
  - ** ограничение ** - Ограничение ответа на *X* количество предупреждений.
  - **Идентификатор папки** – Ограничение ответа на оповещения информационных панелей в указанных папках (папках). Вы можете указать несколько папок, например, folderId=23 и folderId=35.
  - ** dashboardQuery** - Ограничить ответ на оповещения, имеющие имя панели мониторинга, подобное этому значению.
  - ** dashboardTag** - Ограничить ответ на оповещения панелей мониторинга с указанными тегами. Чтобы выполнить фильтрацию "И" с несколькими тегами, укажите параметр tags несколько раз, например, dashboardTag=tag1&dashboardTag=tag2.


**Пример Ответа**:

```http
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://harvest.com/dashboard/db/sensors"
  }
]
```

## Получить оповещение по идентификатору

`GET /api/alerts/:идентификатор`

**Пример Запроса**:

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

**Пример Ответа**:

```http
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://harvest.com/dashboard/db/sensors"
}
```

**Важное Примечание**:
"данные "eval Matches" кэшируются в базе данных тогда и только тогда, когда изменяется состояние оповещения
(например, при переходе из состояния "ok" в состояние "alerting").

Если данные с одного сервера сначала запускают оповещение, и до того, как этот сервер будет замечен выходящим из состояния оповещения,
второй сервер также перейдет в состояние, которое вызовет оповещение, второй сервер не будет виден в данных "evalMatches".

## Приостановить оповещение по идентификатору

`POST /api/оповещения/:идентификатор/пауза`

**Пример Запроса**:

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

{
  "paused": true
}
```

Параметр запроса :id - это идентификатор оповещения, которое должно быть приостановлено или отменено.

Схема тела JSON:

- ** приостановлено ** – Может быть "true` или "false". Значение True для приостановки оповещения. False, чтобы отменить приостановку оповещения.

**Пример Ответа**:

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

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

## Приостановить все оповещения

Порробней [Admin API]({{< relref "admin.md#pause-all-alerts" >}}).
