REST API

Программный доступ к ObserveAI

ObserveAI предоставляет REST API для приёма телеметрии и для программного доступа к данным мониторинга. Все запросы — JSON по HTTPS.

Авторизация

Для эндпоинтов приёма телеметрии используется API-ключ, передаваемый в заголовке X-API-Key или в query-параметре ?api_key=. Получить ключ можно в разделе «API-ключи» личного кабинета.

curl -X POST https://observeai.kayaniq.ru/api/v1/ingest/logs \
  -H "Content-Type: application/json" \
  -H "X-API-Key: oai_your_api_key_here" \
  -d '{"logs": [...]}'

Для аналитического API (просмотр данных в личном кабинете) используется JWT-токен из заголовка Authorization: Bearer <token>.

Базовый URL

https://observeai.kayaniq.ru/api/v1

Эндпоинты приёма телеметрии

POST /api/v1/ingest/spans

Приём распределённых трассировок (OpenTelemetry-совместимая модель).

{
  "spans": [
    {
      "trace_id": "abc123...",
      "span_id": "def456...",
      "parent_span_id": "...",
      "service_name": "checkout",
      "operation": "POST /api/checkout",
      "timestamp": "2026-06-15T12:34:56Z",
      "duration_ms": 145,
      "status": "ok",
      "attributes": {}
    }
  ]
}

POST /api/v1/ingest/logs

Приём журналов приложения.

{
  "logs": [
    {
      "timestamp": "2026-06-15T12:34:56Z",
      "level": "ERROR",
      "service": "payments",
      "message": "Payment failed: insufficient funds",
      "trace_id": "abc123...",
      "attributes": { "user_id": "u_42" }
    }
  ]
}

POST /api/v1/ingest/infrastructure

Приём метрик хостов: CPU, RAM, диск, сеть.

{
  "metrics": [
    {
      "timestamp": "2026-06-15T12:34:56Z",
      "hostname": "web-01",
      "cpu_percent": 67.5,
      "memory_used_bytes": 6442450944,
      "disk_used_percent": 42.1
    }
  ]
}

Аналитические эндпоинты

GET /api/v1/traces

Список трассировок с фильтрацией по времени, сервису, статусу.

Параметры: service, from, to, limit, status.

GET /api/v1/traces/{trace_id}

Получить все спаны конкретного запроса.

GET /api/v1/logs/search

Полнотекстовый поиск по логам.

Параметры: q (поисковая строка), service, level, from, to.

GET /api/v1/infrastructure/hosts

Список хостов с актуальными метриками.

GET /api/v1/apm/endpoints

APM — производительность endpoints с перцентилями задержек.

GET /api/v1/service-map

Карта зависимостей сервисов.

GET /api/v1/errors

Сгруппированные ошибки (Error Tracking).

Алерты

GET /api/v1/alerts

Список настроенных правил.

POST /api/v1/alerts

Создать правило алерта.

DELETE /api/v1/alerts/{id}

Удалить правило.

Биллинг

GET /api/v1/usage

Информация об использовании квоты текущим пользователем.

{
  "plan": "pro",
  "in_trial": false,
  "trial_days_left": 0,
  "used_gb": 4.2,
  "limit_gb": 10,
  "percentage": 42
}

GET /billing/payment-method

Информация о привязанной карте.

DELETE /billing/payment-method

Отвязать карту (отключить автопродление).

Коды ответов

КодЗначение
200, 201Успех
400Некорректный запрос
401Не авторизован (нет API-ключа или JWT)
402Превышена квота (требуется платный тариф)
403Доступ запрещён
404Объект не найден
429Превышен лимит запросов
500Внутренняя ошибка сервера

Лимиты