API Reference
REST API
Qihu предоставляет полный REST API для интеграции с CI/CD, внешними системами мониторинга и кастомными дашбордами.
🔑 Аутентификация
Все запросы требуют Bearer-токен в заголовке Authorization:
curl -H "Authorization: Bearer qihu_tok_xxxxxxxx" \
https://qihu.ru/api/v1/nodesУзлы (Nodes)
GET
/api/v1/nodesВозвращает список всех узлов, подключённых к проекту.
Параметры
projectstringSlug проекта *statusstringФильтр: online | offline | warning Ответ
{
"nodes": [
{
"id": "node_abc123",
"name": "sweden-01",
"status": "online",
"cpu": 12.4,
"ram": 41.2,
"disk": 23.0,
"uptime": 99.9,
"last_seen": "2025-03-22T20:00:00Z"
}
],
"total": 5
}GET
/api/v1/nodes/{id}/metricsВозвращает исторические метрики конкретного узла за указанный период.
Параметры
fromISO8601Начало периода *toISO8601Конец периода (по умолчанию — now) intervalstringШаг агрегации: 1m, 5m, 1h Ответ
{
"node_id": "node_abc123",
"metrics": [
{ "ts": "2025-03-22T19:00:00Z", "cpu": 11.2, "ram": 39.0, "disk": 22.8 },
{ "ts": "2025-03-22T19:05:00Z", "cpu": 14.5, "ram": 41.0, "disk": 22.9 }
]
}Инциденты (Incidents)
GET
/api/v1/incidentsВозвращает список инцидентов. Поддерживает фильтрацию по статусу и узлу.
Параметры
statusstringopen | resolved | acknowledged node_idstringФильтр по узлу limitintКоличество записей (default: 50) Ответ
{
"incidents": [
{
"id": "inc_xyz789",
"title": "RAM > 80%",
"severity": "warning",
"status": "open",
"node": "russia-core",
"created_at": "2025-03-22T20:01:00Z",
"assignee": "razor"
}
]
}POST
/api/v1/incidentsСоздаёт инцидент вручную. Полезно для интеграции с внешними системами.
Параметры
titlestringНазвание инцидента *severitystringinfo | warning | critical *node_idstringID узла, с которым связан инцидент descriptionstringПодробное описание Ответ
{ "id": "inc_new001", "status": "open", "created_at": "2025-03-22T20:05:00Z" }PUT
/api/v1/incidents/{id}/resolveЗакрывает инцидент с указанием причины решения.
Параметры
resolutionstringОписание решения Ответ
{ "id": "inc_xyz789", "status": "resolved", "resolved_at": "2025-03-22T20:15:00Z" }Уведомления (Notifications)
POST
/api/v1/notifications/testОтправляет тестовое уведомление на все настроенные каналы проекта.
Ответ
{ "sent": true, "channels": ["email"] }⚠️ Rate Limits
API ограничен до 100 запросов/минуту на токен. При превышении возвращается статус 429 Too Many Requests.