Runbook - Restart e Recuperação¶
Sintomas que indicam necessidade de restart¶
- Páginas internas não carregam
- Menu sem ação (cliques não respondem)
- Páginas ficam a processar indefinidamente (spinner permanente)
- API
/umbraco/Api/ContentApi/GetData/nao responde ou demora >30 segundos
Fluxograma de decisão¶
flowchart TD
A[Site com problemas] --> B{Que tipo de problema?}
B -->|Paginas nao carregam| C{API responde?}
B -->|Lento / timeout| D[Verificar metricas App Service]
B -->|Erro 500| E[Verificar logs Application Insights]
C -->|Nao| F[Restart do App Service]
C -->|Sim mas lento| D
D --> G{CPU/Memoria > 80%?}
G -->|Sim| F
G -->|Nao| H{SQL DTU > 90%?}
H -->|Sim| I[Escalar SQL temporariamente]
H -->|Nao| F
F --> J{Resolveu?}
J -->|Sim| K[Monitorizar 30 min]
J -->|Nao| N[Escalar App Service Plan]
N --> O{Resolveu?}
O -->|Sim| K
O -->|Nao| P[Contactar equipa Double Shore]
E --> F
Procedimento de Restart Imediato¶
Opção 1: Via Azure Portal¶
- Aceder ao Azure Portal
- Navegar para App Services → uncwebprd
- Na página Overview, clicar em Restart
- Confirmar o restart
- Aguardar 2-3 minutos para o cold start completar
Opção 2: Via Azure CLI¶
az webapp restart \
--name uncwebprd \
--resource-group unc-prd \
--subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a
Verificação após restart¶
Após o restart, validar os seguintes pontos:
- Homepage: Aceder a https://www.unicef.pt — deve carregar em menos de 10 segundos
- Backoffice: Aceder a https://www.unicef.pt/umbraco — deve carregar a pagina de login
- API: Verificar que a API responde corretamente:
curl -s -o /dev/null -w "%{http_code} %{time_total}s" \
"https://www.unicef.pt/umbraco/Api/ContentApi/GetData/?url=/"
O resultado esperado e codigo 200 com tempo inferior a 5 segundos.
Procedimento para ambiente de Qualidade¶
az webapp restart \
--name uncwebqual \
--resource-group unc-qual \
--subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a
Verificação:
- Aceder ao ambiente de qualidade e confirmar que carrega normalmente
- Testar a API no ambiente de qualidade
Se o restart nao resolver¶
Se após o restart o problema persistir, seguir estes passos por ordem:
1. Verificar o SQL Server¶
O SQL pode estar em DTU throttling (sobrecarga de recursos).
# Ver métricas do SQL
az monitor metrics list \
--resource /subscriptions/2e6c7ed6-c6f8-4058-901c-c3113a4df82a/resourceGroups/unc-prd/providers/Microsoft.Sql/servers/uncsqlsrv-prd/databases/uncdb-prd \
--metric dtu_consumption_percent \
--interval PT5M
Se DTU > 90%, considerar escalar temporariamente o tier do SQL.
2. Verificar o Storage Account¶
Confirmar que o storage account uncstorageprd está acessível e a responder.
az storage account show \
--name uncstorageprd \
--resource-group unc-prd \
--subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a
3. Escalar o App Service Plan¶
Como ultimo recurso, escalar temporariamente o App Service Plan para um tier superior:
# Ver o plano atual
az appservice plan show \
--name <nome-do-plano> \
--resource-group unc-prd \
--subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a
# Escalar para um tier superior (exemplo: S2 → S3)
az appservice plan update \
--name <nome-do-plano> \
--resource-group unc-prd \
--sku S3 \
--subscription 2e6c7ed6-c6f8-4058-901c-c3113a4df82a
Nota
Após resolver o problema, reverter o tier para o original para evitar custos desnecessários.