Сегодня утром обновление на установке с двумя контейнерами пошло не по плану. При инициализации нового контейнера база данных была перенесена в нерабочее состояние (возможно, этого удалось бы избежать, если бы я использовал SKIP_POST_DEPLOYMENT_MIGRATIONS=1, но это уже другая история), из-за чего работающий контейнер выдавал сообщение «ой, сайт сломан».
Само по себе это ожидаемо, но мой монитор проверяет /srv/status, и он спокойно возвращает OK, даже когда Rails работает с серьёзными сбоями.
Это баг? Мне очень важно, чтобы мои мониторы знали о проблемах. Может, мне стоит проверять что-то другое, например /about.json (для сайтов, не требующих авторизации)?
Эндпоинт /srv/status проверяет только локальный процесс, а не зависимости. «Застрял ли HTTP-стек?» и «нахожусь ли я в режиме утихания?». В терминологии Kubernetes это livenessProbe, а не readinessProbe.
Если мы хотим внедрить readinessProbe, он должен находиться по другому URL.