SafeOps Performance Rollout Runbook¶
Finestra consigliata: dopo le 20:00, senza deploy concorrenti sugli stessi file.
Freeze¶
- Bloccare modifiche su
app/modules/commerciale/views.py - Bloccare modifiche su
app/modules/commerciale/models.py - Bloccare modifiche su
app/static/js/safeops.js - Bloccare modifiche su
app/templates/appbuilder/custom/commerciale_richiesta_servizio_list.html - Bloccare modifiche su
app/perf.py - Bloccare modifiche su
app/__init__.py
Feature flag¶
LOG_REQUEST_PROFILING=1SAFEOPS_COMMERCIALE_UI_METRICS=1SAFEOPS_PRATICA_SELECTIN=1SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=1
Rollback rapido¶
- Spegnere sola strumentazione:
LOG_REQUEST_PROFILING=0 - Tornare ai badge/summary legacy:
SAFEOPS_COMMERCIALE_UI_METRICS=0 - Disattivare query option
selectinsuPraticaServizioView:SAFEOPS_PRATICA_SELECTIN=0 - Disattivare bootstrap schema runtime:
SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=0
Ordine operativo¶
- Verificare che non ci siano altri deploy in corso.
- Applicare le variabili d'ambiente nel drop-in del servizio.
- Riavviare
safeops-web.service. - Attendere warmup completo dei worker.
- Eseguire smoke test:
/commercialerichiestaservizioview/list//commercialerichiestaservizioview/ui-metrics/praticaservizioview/list//clienteview/list//documentoview/list/- Raccogliere:
var/log/slow_requests.logvar/log/slow_queries.logjournalctl -u safeops-web.service -n 200- Se emerge regressione, disattivare il flag minimo necessario e ripetere il riavvio.
Criteri di stop¶
ui-metricsnon deve rispondere302o403PraticaServizioViewnon deve restituire500slow_queries.lognon deve più mostrare DDLCREATE TABLE IF NOT EXISTSoALTER TABLE ...in normali request- Le request lente devono mostrare breakdown coerente:
sql_ms,sql_count,template_ms,external_ms
Note¶
- Il flag
SAFEOPS_COMMERCIALE_RUNTIME_SCHEMA_BOOTSTRAP=0va usato solo se lo schema è già allineato. - Se il servizio è lento subito dopo restart, controllare warmup FAB/permission sync prima di misurare gli endpoint.