Hoje de manhã, uma atualização em uma instalação com 2 containers deu errado. Ao inicializar um novo container, o banco de dados foi migrado para um estado quebrado (talvez não teria acontecido se eu tivesse usado SKIP_POST_DEPLOYMENT_MIGRATIONS=1, mas isso é outro problema), de modo que o container em execução exibiu a mensagem “ops, este site está quebrado”.
Isso é esperado, mas meu monitor está verificando /srv/status e ele retorna alegremente um OK, mesmo quando o Rails está bastante quebrado.
Isso é um bug? Quero realmente que meus monitores saibam se há um problema. Deveria estar consultando algo como /about.json (para sites que não exigem login)?
O endpoint /srv/status verifica apenas o processo local, não qualquer dependência. “A pilha HTTP está travada?” e “estou em modo de pato manco?”. Na terminologia do Kubernetes, isso é o livenessProbe, não o readinessProbe.
Se quisermos introduzir um readinessProbe, ele deve estar em uma URL diferente.
Provavelmente Discourse.system_user.id em vez de 1.