Hoy por la mañana, una actualización en una instalación de 2 contenedores salió mal. Al crear un nuevo contenedor, la base de datos se migró a un estado roto (quizás no habría ocurrido si hubiera usado SKIP_POST_DEPLOYMENT_MIGRATIONS=1, pero ese es otro problema), de modo que el contenedor en ejecución mostró el mensaje «ups, este sitio está roto».
Esto es lo esperado, pero mi monitor verifica /srv/status y devuelve tranquilamente un OK incluso cuando Rails está bastante roto.
¿Es esto un error? Realmente quiero que mis monitores sepan si hay un problema; ¿debería consultar en su lugar algo como /about.json (para sitios que no requieren inicio de sesión)?
El endpoint /srv/status verifica solo el proceso local, no las dependencias. ¿Está el stack HTTP bloqueado? ¿Estoy en modo de pato cojo? En la terminología de Kubernetes, esto es el livenessProbe, no el readinessProbe.
Si queremos introducir un readinessProbe, debería estar en una URL diferente.
Probablemente Discourse.system_user.id en lugar de 1.