Service: Personal Lifecycle Tracker
Target Environments: dev, production
Observability Suite: Prometheus (:9091), Loki (:3101), Tempo (:3201), Grafana (:3004)
HighServerErrorRate (5xx Errors > 1%)http://localhost:3004/d/lifecycle-golden-signals.Environment: production and isolate failing routes.{service="backend"} |= "ERROR".TraceID and paste into Tempo Trace Search.make test-integration or docker compose ps db.docker compose restart backend.make on-call-verify.HighP95Latency (Latency > 500ms)pg_stat_activity.docker stats.Run daily PostgreSQL logical backup inside container:
docker compose exec -T db pg_dump -U postgres -d lifecycle | gzip > backups/lifecycle_$(date +%Y%m%d_%H%M%S).sql.gz
Test backup restoration into an isolated test container:
gunzip < backups/latest.sql.gz | docker compose exec -T db psql -U postgres -d lifecycle_restore_test
If a production release introduces regression:
/personal-lifecycle/production/image_tag:
aws ssm put-parameter --name "/personal-lifecycle/production/image_tag" --value "PREVIOUS_TAG" --type String --overwrite
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d --no-build
curl -f http://localhost:8088/health