Перейти к основному содержимому

Компоненты

В этой статье мы опишем как можно управлять Компонентами Статус Страниц через API. Компоненты представляют собой отдельные части вашей системы, чье состояние вы отслеживаете (например, API, веб-сайт, база данных).

Объект Компонента

GET /v1/pages/{page_id}/components
GET /v1/pages/{page_id}/components/{component_id}

Метод для получения всех компонентов указанной Статус Страницы или одного компонента по ID.

Пример объекта:

{
"created_at": "2025-01-30T17:27:20",
"description": "Публичный API сервер - [https://api.pingera.ru](https://api.pingera.ru)",
"group": false,
"group_id": null,
"id": "8o8frkk3sune",
"name": "API",
"only_show_if_degraded": false,
"page_id": "5rs9dvpvyyp8",
"position": 0,
"showcase": true,
"start_date": null,
"status": "operational",
"updated_at": "2025-05-01T09:31:57.204048"
}

Поля

ПолеТип объектаОписание
created_atstring (ISO 8601)Дата и время создания компонента.
descriptionstring or nullОписание компонента.
groupbooleanЯвляется ли компонент группой.
group_idstring or nullID группы, к которой принадлежит компонент (если group = false).
idstringУникальный идентификатор компонента.
namestringНазвание компонента.
only_show_if_degradedbooleanОтображать компонент только в случае ухудшения состояния.
page_idstringID Статус Страницы, которой принадлежит компонент.
positionnumberПозиция компонента при отображении на странице.
showcasebooleanОтображать ли данные по аптайму для компонента.
start_datestring or nullДата начала работы компонента (может использоваться для статистики).
statusstringТекущий статус компонента (operational, degraded_performance, partial_outage, major_outage).
updated_atstring (ISO 8601)Дата и время последнего обновления компонента.

Создать Компонент

POST /v1/pages/{page_id}/components

Создать новый компонент для указанной Статус Страницы.

Требуемые поля

ПолеТип объектаОписание
namestringНазвание компонента.

Ответ

API вернет объект Компонента.

Изменить или удалить Компонент

PUT /v1/pages/{page_id}/components/{component_id}
PATCH /v1/pages/{page_id}/components/{component_id}
DELETE /v1/pages/{page_id}/components/{component_id}

Используйте те же поля, что и в объекте компонента для изменения.

Объект Группы Компонентов

GET /v1/pages/{page_id}/component-groups
GET /v1/pages/{page_id}/component-groups/{component_id}

Метод для получения всех групп компонентов указанной Статус Страницы или одной группы по ID. Объект группы компонентов имеет схожую структуру с объектом компонента, но поле group всегда true, а группа может содержать другие компоненты.

{
"created_at": "2024-07-15T10:00:00",
"description": "Группа серверов в регионе EU",
"group": true,
"group_id": null,
"id": "a1b2c3d4e5f6",
"name": "Серверы EU",
"only_show_if_degraded": false,
"page_id": "5rs9dvpvyyp8",
"position": 1,
"showcase": false,
"start_date": null,
"status": "operational",
"updated_at": "2024-07-16T11:30:00"
}

Создать Группу Компонентов

POST /v1/pages/{page_id}/component-groups

Создать новую группу компонентов для указанной Статус Страницы.

Требуемые поля

ПолеТип объектаОписание
namestringНазвание группы.

Ответ

API вернет объект Группы Компонентов.

Изменить или удалить Группу Компонентов

PUT /v1/pages/{page_id}/component-groups/{component_id}
PATCH /v1/pages/{page_id}/component-groups/{component_id}
DELETE /v1/pages/{page_id}/component-groups/{component_id}

Используйте те же поля, что и в объекте группы компонентов для изменения.

Статусы Компонентов

GET /v1/component-statuses

Вывод доступных статусов для Компонентов.

[
"operational",
"under_maintenance",
"degraded_performance",
"partial_outage",
"major_outage"
]

Получение статистики аптайма компонентов

GET /v1/pages/{page_id}/components/{component_id}/uptime
POST /v1/pages/{page_id}/components/uptime

Возвращает статистику аптайма для отдельного компонента или для всех компонентов на указанной Статус Странице в виде массива объектов.

Формат ответа:

{
"range_start": "YYYY-MM-DD",
"range_end": "YYYY-MM-DD",
"uptime_percentage": 99.99,
"major_outage": 0,
"partial_outage": 3600,
"warnings": ,
"id": "8o8frkk3sune",
"name": "API",
"related_events": {
"id": ["a1b2c3d4e5f6", "f9e8d7c6b5a4"]
}
}

Для /v1/pages/{page_id}/components/uptime необходимо передать в JSON массив с ID компонентов:

"component_ids": ["a1b2c3d4e5f6"]

Поля

ПолеТип объектаОписание
range_startstringНачальная дата периода расчета аптайма (YYYY-MM-DD).
range_endstringКонечная дата периода расчета аптайма (YYYY-MM-DD).
uptime_percentagenumberПроцент аптайма за указанный период (с двумя знаками после запятой).
major_outageintegerОбщее время серьезных сбоев в секундах за указанный период.
partial_outageintegerОбщее время частичных сбоев в секундах за указанный период.
warningsarrayРазличные сообщение про рассчет аптайма, если что-то не было учтено.
idstringУникальный идентификатор компонента.
namestringНазвание компонента.
related_eventsobjectОбъект, содержащий информацию о связанных инцидентах.
related_events.idarrayМассив уникальных идентификаторов инцидентов, произошедших с компонентом за указанный период.

Параметры запроса

Пользователи могут указать начальную и конечную даты периода для расчета аптайма с помощью параметров запроса start и end.

start (необязательный)

Начальная дата для расчета аптайма. По умолчанию используется поле start_date компонента или 90 дней назад (в зависимости от того, что позже). Максимальный поддерживаемый диапазон дат составляет шесть календарных месяцев. Поддерживаются частичные форматы даты:

  • Если указан только год (YYYY), используется 1 января этого года.
  • Если указан год и месяц (YYYY-MM), используется 1 число указанного месяца.
  • Самая ранняя поддерживаемая дата - 1 января 1970 года.

end (необязательный)

Конечная дата для расчета аптайма. По умолчанию используется текущая дата в часовом поясе Статус Страницы. Максимальный поддерживаемый диапазон дат составляет шесть календарных месяцев. Поддерживаются частичные форматы даты:

  • Если указан только год (YYYY), используется 31 декабря этого года.
  • Если указан год и месяц (YYYY-MM), используется последний день указанного месяца.
  • Самая ранняя поддерживаемая дата - 1 января 1970 года.