pm2 logs sjvik-control-panel
Cannot find module tsx
npm install && pm2 restart sjvik-control-panel
npm install
package.json
"prestart": "npm ls --depth=0 --silent || (echo 'Dependency validation failed — run npm install' && exit 1)"
"prestart": "npm ls --depth=0 --silent || (echo 'Dependency validation failed — run npm install' && exit 1)"
"prestart": "npm ls --depth=0 --silent || (echo 'Dependency validation failed — run npm install' && exit 1)"
- alert: PM2ServiceRestartRateSpiking expr: rate(pm2_restarts_total[5m]) > 0.1 for: 2m labels: severity: warning annotations: summary: "{{ $labels.name }} restarting frequently"
- alert: PM2ServiceRestartRateSpiking expr: rate(pm2_restarts_total[5m]) > 0.1 for: 2m labels: severity: warning annotations: summary: "{{ $labels.name }} restarting frequently"
- alert: PM2ServiceRestartRateSpiking expr: rate(pm2_restarts_total[5m]) > 0.1 for: 2m labels: severity: warning annotations: summary: "{{ $labels.name }} restarting frequently"
Service: sjvik-control-panel
Recovery: cd /root/projects/sjvik-control-panel && npm install && pm2 restart sjvik-control-panel
Verify: curl -s http://localhost:3456/health | jq .status
Escalate if: health endpoint returns non-200 after npm install
Service: sjvik-control-panel
Recovery: cd /root/projects/sjvik-control-panel && npm install && pm2 restart sjvik-control-panel
Verify: curl -s http://localhost:3456/health | jq .status
Escalate if: health endpoint returns non-200 after npm install
Service: sjvik-control-panel
Recovery: cd /root/projects/sjvik-control-panel && npm install && pm2 restart sjvik-control-panel
Verify: curl -s http://localhost:3456/health | jq .status
Escalate if: health endpoint returns non-200 after npm install - Detection time matters. Alert on behavior, not just state.
- Recovery time improves with runbooks. Write them while you still remember what you did.
- Postmortems find gaps that didn't feel like gaps until something broke.