WebSocket API
WebSocket API позволяет подписаться на метрики, статусы сервисов и события инцидентов в реальном времени. Это тот же канал, по которому работают живые дашборды в веб-интерфейсе.
Эндпоинты
Платформа предоставляет два совместимых транспорта поверх TLS:
/api/live/updates— «сырой» WebSocket-поток обновлений (метрики, статусы, события). Рекомендуется для серверных интеграций./socket.io— совместимость с клиентами Socket.IO (поллинг с апгрейдом до WebSocket). Удобно для браузерных приложений и виджетов.
Подключение
Установите защищённое соединение и передайте токен проекта в параметре запроса:
const ws = new WebSocket(
"wss://stream.devsec.pro/api/live/updates?token=" + token
);
ws.onmessage = (event) => {
const frame = JSON.parse(event.data);
console.log(frame.metric, frame.value, frame.ts);
};
Формат кадров
Сервер отправляет JSON-кадры. Поле type определяет содержимое:
{
"type": "metrics",
"rps": 1840,
"p95": 74,
"errRate": 0.12,
"ts": 1749650400
}
Подписки
После открытия соединения отправьте сообщение с интересующими каналами:
ws.send(JSON.stringify({
"action": "subscribe",
"channels": ["metrics", "status", "incidents"]
}));
Переподключение
Клиент должен переустанавливать соединение с экспоненциальной задержкой при разрыве. Рекомендуемый интервал — от 1 до 5 секунд. Сервер закрывает простаивающие соединения через 60 секунд без сообщений; используйте ping-кадры для поддержания канала.
Подробности по авторизации и лимитам — в разделе REST API.