API статус-панели

Public Status API — это инструмент для получения информации о статусе плановых работ в обслуживании сервисов Selectel, который можно интегрировать с вашим приложением, системой или сайтом. Получаемая информация соответствует отображаемой в текущий момент на странице, за исключением вывода истории. Время обновления данных приводится в формате UTC.

Метод вызова API представляет собой HTTP-запрос GET к URL без дополнительной авторизации. При выполнении запроса API возвращает модель объекта в формате JSON. Например:

curl -XGET -H "Content-Type: application/json" 'http://selectel.status.io/1.0/status/5980813dd537a2a7050004bd'

, где:

  • -XGET – параметр, указывающий тип запроса к API;
  • “Content-Type: application/json” – HTTP-заголовок для явного описания типа данных, содержащихся в теле запроса;
  • адрес API указывается в одинарных кавычках.

Пример структуры данных ответа

В целях удобочитаемости, вывод сокращен:

{
  "result": {
    "status_overall": {
      "updated": "2017-10-31T08:50:22.060Z",
      "status": "Operational",
      "status_code": 100
    },
    "status": [
      {
        "id": "5982de1e383934bd050006ac",
        "name": "Dedicated Servers and Colocation",
        "updated": "2017-10-31T08:50:22.060Z",
        "status": "Operational",
        "status_code": 100,
        "containers": [
          {
            "id": "5982d729f6278a3b05000618",
            "name": "Control panel",
            "updated": "2017-10-26T10:35:26.669Z",
            "status": "Operational",
            "status_code": 100
          },
     ...
Параметр Описание
status_overall Общая сводка состояния всех сервисов и их инстансов
id Идентификатор сервиса
name Название сервиса
updated Время обновления информации в формате UTC
containers Разделы инстансов сервиса
status Статус сервиса
status_code Код статуса сервиса

Значения параметров status_code и status:

status_code status Описание
100 Operational Все работает в штатном режиме
200 Planned Maintenance Запланированное обслуживание
300 Degraded Performance Сервис работает, но имеет проблемы с производительностью
400 Partial Service Disruption Частичная недоступность сервиса
500 Service Disruption Сервис полностью недоступен
600 Security Event Событие безопасности

Информация о запланированном обслуживании

Пример части вывода, ниже разберем его более подробно:

...
  "incidents": [],
    "maintenance": {
      "active": [],
      "upcoming": [
        {
          "name": "Плановые работы на внутреннем канале связи",
          "_id": "59f80c422d8d1864854fea62",
          "datetime_open": "2017-10-31T05:38:10.903Z",
          "datetime_planned_start": "2017-11-01T21:00:00.000Z",
          "datetime_planned_end": "2017-11-01T23:00:00.000Z",
          "messages": [
            {
              "details": "Проводятся плановые работы по возвращению на основную схему сети после обрыва канала ВОЛС RETN 15.10.2017.\r\nСвязность Москва - Петербург обеспечивается резервным каналом.\r\nНа время плановых работ снижен уровень резервирования до N+0.\r\nВремя фактического перерыва связи составит до 30 минут.\r\nНедоступность могут фиксировать клиенты, использующие прямые каналы RETN.",
              "state": 100,
              "status": 200,
              "datetime": "2017-10-31T05:38:00.000Z"
            }
          ],
          "containers_affected": [
            {
              "name": "Core network",
              "_id": "59b69a93d4c04f860500078d"
            }
          ],
          "components_affected": [
            {
              "name": "Network",
              "_id": "59b69ac3331fbea405000743"
            }
          ]
        }
      ]
    }
...

Указывается тип инцидента и его состояние:

 ...
 "incidents": [],
    "maintenance": {
      "active": [],
      "upcoming": [
   ...

Название, идентификатор, дата создания, начала и окончания инцидента:

...
   {
          "name": "Плановые работы на внутреннем канале связи",
          "_id": "59f80c422d8d1864854fea62",
          "datetime_open": "2017-10-31T05:38:10.903Z",
          "datetime_planned_start": "2017-11-01T21:00:00.000Z",
          "datetime_planned_end": "2017-11-01T23:00:00.000Z",
...

Описание инцидента, его коды статуса, время создания (изменения) описания.

Код “state” инцидента Описание
100 - Investigating Проблема изучается, поиск решения
200 - Identified Проблема известна и решается
300 - Monitoring Проблема устранена, производится мониторинг
...           
           "messages": [
            {
              "details": "Проводятся плановые работы по возвращению на основную схему сети после обрыва канала ВОЛС RETN 15.10.2017.\r\nСвязность Москва - Петербург обеспечивается резервным каналом.\r\nНа время плановых работ снижен уровень резервирования до N+0.\r\nВремя фактического перерыва связи составит до 30 минут.\r\nНедоступность могут фиксировать клиенты, использующие прямые каналы RETN.",
              "state": 100,
              "status": 200,
              "datetime": "2017-10-31T05:38:00.000Z"
            }
          ]
...

Указание затронутых сервисов:

...
          ],
          "containers_affected": [
            {
              "name": "Core network",
              "_id": "59b69a93d4c04f860500078d"
            }
          ],
          "components_affected": [
            {
              "name": "Network",
              "_id": "59b69ac3331fbea405000743"
            }
...

В случае ошибки в URL запроса API вернет ответ:

{"error":"status page not found"}

или

{
    "status": {
        "error": "yes",
        "message": "Not Found"
    }
}

Если ошибка будет в типе запроса (доступны только GET-запросы), ответ будет таким:

{
    "status": {
        "error": "yes",
        "message": "Forbidden"
    }
}