Релей GlitchTip в Telegram
Для разработчиков. Состояние на 24.09.2026. Подробности — README Buharestskie/gitchtip_tg_bot. Отчёт по оплатам для группы ОС описан отдельно — статья «Отчёт по оплатам группы ОС».
Коротко
gitchtip_tg_bot — релей в Telegram. Принимает HTTP-вебхуки и пересылает их в чаты: алерты GlitchTip, обращения «Сообщить о проблеме» из дашбордов и виджетов, отчёт смены менеджера МОС. Сам следит, жив ли GlitchTip, и раз в день собирает отчёт по оплатам группы ОС.

Где живёт
| Сервер | ulrica — с российских площадок api.telegram.org недоступен; каталог, контейнер и адрес — в README |
| Адрес | HTTP без TLS и без reverse proxy, на отдельном порту ulrica |
| Код | доставляется git-бандлом: у ulrica нет доступа к GitHub |
Что куда уходит
Все пути защищены одним токеном в адресе: /hook/<WEBHOOK_TOKEN>. Чужой токен — 401.
| Кто шлёт | Путь | Как бот понимает, что это | Чат |
|---|---|---|---|
| GlitchTip (все проекты) | /hook/… | всё, что не подошло ниже | TELEGRAM_CHAT_ID |
| «Сообщить о проблеме»: МОС, МПП1, МПП2, виджет Яндекс.Диска, return_amo_hook_service | /hook/… (у отправителя — FEEDBACK_WEBHOOK_URL) | в теле есть непустой alias | TELEGRAM_CHAT_ID |
| Отчёт смены из виджета МОС | /mos-workday-report/… (у отправителя — WORKDAY_REPORT_WEBHOOK_URL) | в теле есть объект report | WORKDAY_REPORT_CHAT_ID |
| Ручной запуск отчёта по оплатам | POST /payments-report/… | — | PAYMENTS_REPORT_CHAT_ID |
Тип определяет тело, а не путь: отчёт смены, присланный на /hook/, всё равно уйдёт в чат отчётов.
Из пейлоада GlitchTip читаются только text и attachments[].title / title_link / text. Уровень события не читается — у любого алерта шапка «🔴 GlitchTip».
Подключить новый проект GlitchTip
- В GlitchTip, в настройках проекта, — правило алерта с интеграцией generic webhook.
- Адрес —
…/hook/<WEBHOOK_TOKEN>релея: проще всего скопировать из правила любого уже подключённого проекта; адрес — в README, токен — в.envрелея на сервере. - Как часто алертить, решает правило в GlitchTip: сам релей ничего не фильтрует и не склеивает — один POST, одно сообщение.
Монитор GlitchTip
Раз в 5 минут релей запрашивает GLITCHTIP_HEALTH_URL (таймаут 10 секунд). Пишет только при смене состояния: «🔴 GlitchTip недоступен» с причиной и «🟢 GlitchTip снова доступен». Одного неудачного опроса хватает для алерта; падение и подъём между двумя опросами не заметит.
На что наступают
- Нет очереди и повторов. Если Telegram отказал, отправитель получает
502и должен повторить сам — иначе сообщение потеряно. - Сообщение длиннее 4096 символов Telegram отклонит — тоже
502. Режется на части только отчёт по оплатам. - Сменили
WEBHOOK_TOKEN— поправить адрес в правилах GlitchTip иFEEDBACK_WEBHOOK_URL/WORKDAY_REPORT_WEBHOOK_URLу всех отправителей. - Токен в пути попадает в access-лог.
- Поля
…Secondsв отчёте смены МОС на самом деле минуты — дашборд уже переводит их, а имена полей не меняет. aiohttpне указан вrequirements.txt— работает транзитной зависимостью.- Отчёт по оплатам падает с
KeyErrorмолча — если зарплатный дашборд поменял формат ответа, в чат не придёт ни отчёт, ни сообщение о сбое. - Внешней пробы у релея нет — окно обслуживания при выкатке открыть не на что.
Нет комментариев для отображения
Нет комментариев для отображения