[Taiga #67] Добавить endpoint /api/v1/runtime-info для просмотра runtime состояния #6

Open
opened 2026-05-18 22:08:16 +00:00 by Grigo · 0 comments
Owner

Linked Taiga story: #67

Suggested branch:
feature/taiga-67-dobavit-endpoint-api-v1-runtime-info-dlya-prosmotra-runtime-

Project type: work
AI tags: work, ais, backend, rest-api, monitoring, runtime

Description

Реализовать новый REST endpoint для мониторинга runtime состояния сервиса AISHub. Endpoint должен возвращать информацию о состоянии subsystem'ов, активных соединениях, использовании памяти и других runtime метриках. Будет дополнением к существующему /api/v1/health и /api/v1/stats.

Taiga: https://tasks.grigowashere.ru/project//us/67

Acceptance criteria

  • Endpoint GET /api/v1/runtime-info возвращает HTTP 200 с JSON телом
  • Ответ содержит статус каждого активного subsystem'а (ingest, parser, storage, publish)
  • Ответ содержит информацию об активных соединениях (WebSocket клиентов, UDP слушателей)
  • Ответ содержит информацию об использовании памяти (RSS, VMS или аналог)
  • Ответ документирован в docs/API.md с примером
  • Endpoint покрыт тестом в tests/test_rest_smoke.py или аналогичном

Code notes

  • В src/ais_hub/app.py класс App управляет supervisors через self._supervisors dict — там можно получить статус каждого
  • В src/ais_hub/publish/rest.py класс RestServer уже имеет доступ к app и может получить глобальное состояние
  • Существующие endpoints /api/v1/health и /api/v1/stats есть в rest.py — runtime-info должен быть в той же файле
  • tests/test_rest_smoke.py уже содержит примеры интеграционных тестов REST endpoints (test_vessels_endpoint_reflects_state), следовать тому же паттерну
  • WebSocket клиенты управляются в publish/rest.py в методах on_ws_connect/disconnect, счетчик активных клиентов должен быть доступен

Questions

  • Какие именно subsystem'ы должны быть в runtime-info? (подтвердить: ais_ingest, gps_ingest, radio_ingest, parser, storage, ws_server, udp_publishers)
  • Нужны ли детали о каждом supervisor'е (количество перезапусков, время последней ошибки) или только статус UP/DOWN?
  • Следует ли включать информацию о памяти (RSS, VMS) или это выходит за рамки задачи и лучше мониторить через системные tools?
  • Есть ли требования к максимальному размеру ответа или он может быть любым?
Linked Taiga story: #67 Suggested branch: `feature/taiga-67-dobavit-endpoint-api-v1-runtime-info-dlya-prosmotra-runtime-` Project type: `work` AI tags: work, ais, backend, rest-api, monitoring, runtime ## Description Реализовать новый REST endpoint для мониторинга runtime состояния сервиса AISHub. Endpoint должен возвращать информацию о состоянии subsystem'ов, активных соединениях, использовании памяти и других runtime метриках. Будет дополнением к существующему /api/v1/health и /api/v1/stats. Taiga: https://tasks.grigowashere.ru/project//us/67 ## Acceptance criteria - Endpoint GET /api/v1/runtime-info возвращает HTTP 200 с JSON телом - Ответ содержит статус каждого активного subsystem'а (ingest, parser, storage, publish) - Ответ содержит информацию об активных соединениях (WebSocket клиентов, UDP слушателей) - Ответ содержит информацию об использовании памяти (RSS, VMS или аналог) - Ответ документирован в docs/API.md с примером - Endpoint покрыт тестом в tests/test_rest_smoke.py или аналогичном ## Code notes - В src/ais_hub/app.py класс App управляет supervisors через self._supervisors dict — там можно получить статус каждого - В src/ais_hub/publish/rest.py класс RestServer уже имеет доступ к app и может получить глобальное состояние - Существующие endpoints /api/v1/health и /api/v1/stats есть в rest.py — runtime-info должен быть в той же файле - tests/test_rest_smoke.py уже содержит примеры интеграционных тестов REST endpoints (test_vessels_endpoint_reflects_state), следовать тому же паттерну - WebSocket клиенты управляются в publish/rest.py в методах on_ws_connect/disconnect, счетчик активных клиентов должен быть доступен ## Questions - Какие именно subsystem'ы должны быть в runtime-info? (подтвердить: ais_ingest, gps_ingest, radio_ingest, parser, storage, ws_server, udp_publishers) - Нужны ли детали о каждом supervisor'е (количество перезапусков, время последней ошибки) или только статус UP/DOWN? - Следует ли включать информацию о памяти (RSS, VMS) или это выходит за рамки задачи и лучше мониторить через системные tools? - Есть ли требования к максимальному размеру ответа или он может быть любым?
Grigo added the workaisbackendrest-apimonitoringruntime labels 2026-05-18 22:08:17 +00:00
Sign in to join this conversation.