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.
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?
- Есть ли требования к максимальному размеру ответа или он может быть любым?
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Linked Taiga story: #67
Suggested branch:
feature/taiga-67-dobavit-endpoint-api-v1-runtime-info-dlya-prosmotra-runtime-Project type:
workAI 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
Code notes
Questions