Компоненты
В этой статье мы опишем как можно управлять Компонентами Статус Страниц через 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_at | string (ISO 8601) | Дата и время создания компонента. |
description | string or null | Описание компонента. |
group | boolean | Является ли компонент группой. |
group_id | string or null | ID группы, к которой принадлежит компонент (если group = false). |
id | string | Уникальный идентификатор компонента. |
name | string | Название компонента. |
only_show_if_degraded | boolean | Отображать компонент только в случае ухудшения состояния. |
page_id | string | ID Статус Страницы, которой принадлежит компонент. |
position | number | Позиция компонента при отображении на странице. |
showcase | boolean | Отображать ли данные по аптайму для компонента. |
start_date | string or null | Дата начала работы компонента (может использоваться для статистики). |
status | string | Текущий статус компонента (operational, degraded_performance, partial_outage, major_outage). |
updated_at | string (ISO 8601) | Дата и время последнего обновления компонента. |
Создать Компонент
POST /v1/pages/{page_id}/components
Создать новый компонент для указанной Статус Страницы.
Требуемые поля
| Поле | Тип объекта | Описание |
|---|---|---|
name | string | Название компонента. |
Ответ
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
Создать новую группу компонентов для указанной Статус Страницы.
Требуемые поля
| Поле | Тип объекта | Описание |
|---|---|---|
name | string | Название группы. |
Ответ
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_start | string | Начальная дата периода расчета аптайма (YYYY-MM-DD). |
range_end | string | Конечная дата периода расчета аптайма (YYYY-MM-DD). |
uptime_percentage | number | Процент аптайма за указанный период (с двумя знаками после запятой). |
major_outage | integer | Общее время серьезных сбоев в секундах за указанный период. |
partial_outage | integer | Общее время частичных сбоев в секундах за указанный период. |
warnings | array | Различные сообщение про рассчет аптайма, если что-то не было учтено. |
id | string | Уникальный идентификатор компонента. |
name | string | Название компонента. |
related_events | object | Объект, содержащий информацию о связанных инцидентах. |
related_events.id | array | Массив уникальных идентификаторов инцидентов, произошедших с компонентом за указанный период. |
Параметры запроса
Пользователи могут указать начальную и конечную даты периода для расчета аптайма с помощью параметров запроса start и end.
start (необязательный)
Начальная дата для расчета аптайма. По умолчанию используется поле start_date компонента или 90 дней назад (в зависимости от того, что позже). Максимальный поддерживаемый диапазон дат составляет шесть календарных месяцев. Поддерживаются частичные форматы даты:
- Если указан только год (YYYY), используется 1 января этого года.
- Если указан год и месяц (YYYY-MM), используется 1 число указанного месяца.
- Самая ранняя поддерживаемая дата - 1 января 1970 года.
end (необязательный)
Конечная дата для расчета аптайма. По умолчанию используется текущая дата в часовом поясе Статус Страницы. Максимальный поддерживаемый диапазон дат составляет шесть календарных месяцев. Поддерживаются частичные форматы даты:
- Если указан только год (YYYY), используется 31 декабря этого года.
- Если указан год и месяц (YYYY-MM), используется последний день указанного месяца.
- Самая ранняя поддерживаемая дата - 1 января 1970 года.