Добавляем наблюдаемость: эндпоинт /stats со состоянием очередей и счётчиками.
Детали изменения
Добавляем наблюдаемость: эндпоинт /stats со состоянием очередей и счётчиками
Мониторить бота по ssh неудобно, а следят за ним из админки Scout. Теперь
процесс сам рассказывает о себе: версия сборки (вшивается ldflags), uptime,
действующие лимиты, глубина каждой очереди с курсором потребителя, счётчики
приёма и доставки с последними ошибками и снапшот конвейера отправки.
Внутри два механизма сбора по свойствам владельца данных: атомарные счётчики
для компонентов без отзывчивой горутины (хендлеры, forwarder, reporter) и
снапшот через канал-запрос у dispatcher'а, который и так сидит в select.
Эндпоинт отдаёт только числа: вердикт «здоров/болен» формулирует потребитель,
пороги меняются чаще кода бота.
ADR-005 — почему pull-JSON, а не Prometheus и не push; learning-разбор 004 —
как это устроено внутри.