3.2 KiB
3.2 KiB
title, category, error_codes, severity, owner, last_updated, status
| title | category | error_codes | severity | owner | last_updated | status | |||
|---|---|---|---|---|---|---|---|---|---|
| Runbook — 5xx Internal error spike | INTERNAL |
|
P1 | oncall | 2026-05-22 | stub |
Runbook: 5xx Internal error spike
1. Trigger
이 runbook은 다음 alert에서 발동됩니다.
- alert name:
http_5xx_error_rate_critical - alert payload 필수 field:
operation,error.code,error.category,request_id,traceId,runbook_link - 임계: 5xx error rate > 5% 5분 지속 OR > 10% 1분
2. First Response (5분 이내)
Step 1 — 확인
- 가장 최근 deploy 시각 확인 (CI/CD dashboard, artifact registry digest)
- JVM metric 확인: heap usage, GC pause, CPU, thread count
- log에서 실패 request 1건 추출 →
request_id,traceId확보 - error.code 분포 확인:
INTERNAL_ERRORvsJVM_OOMvsINTERNAL_AUTH_MISCONFIGURATION
Step 2 — 임시 격리
- 직전 deploy가 의심되면 즉시 rollback (artifact registry에서 직전 image digest pin)
- OOM 패턴이면 affected pod evict → ASG/HPA로 replacement 유도
- LB에서 unhealthy pod 격리 (readiness probe failure 유도)
3. Diagnosis
- log query:
{service="app"} | http.status>=500 | stats count by error.code - metric panel:
jvm_memory_used_bytes{area="heap"},jvm_gc_pause_seconds,process_cpu_seconds_total,http_server_requests_seconds_count{status=~"5.."} - trace: 실패 request의
traceId로 span chain 확인 → stack trace에서 root exception 추출 - heap dump 위치:
/var/tmp/heap/heapdump-<pid>.hprof(JVM ergonomics:-XX:MaxRAMPercentage=75 -XX:+HeapDumpOnOutOfMemoryError) - 가능한 원인:
- 직전 deploy의 회귀 버그 → rollback
- JVM OOM (메모리 leak 또는 부하 증가) → heap dump 분석
- 외부 의존성 설정 오류 (
INTERNAL_AUTH_MISCONFIGURATION) → config secret 확인 - thread starvation (pool 고갈) → thread dump (
jstack <pid>)
4. Mitigation
- 단기: 직전 deploy rollback, OOM pod replacement, traffic 일시 감소(scale-out 또는 rate-limit 강화)
- config 오류면 secret/configmap rollback
- 장기: heap dump 기반 leak 수정, capacity planning 재검토
5. Escalation
- 다음 on-call로 page: 10분 내 회복 안 되면 incident commander 호출, severity 1 incident 선언
- 데이터 손상 의심되면 DBA team page
6. Recovery / Verification
- 회복 확인 metric: 5xx rate < 0.5% 5분 지속, JVM heap usage < 70%, GC pause p99 < 500ms
- post-incident:
- rollback 원인 RCA 작성 (배포 게이트 강화 필요 여부)
- heap dump 분석 결과 공유
- JVM ergonomics(
-XX:MaxRAMPercentage) 재검토 - rollback 자동화 절차 점검
7. Related
- error-codes.yaml rows:
INTERNAL_ERROR,INTERNAL_AUTH_MISCONFIGURATION,JVM_OOM - metrics.yaml:
jvm_memory_used_bytes,jvm_gc_pause_seconds,http_server_requests_seconds_count - 관련 branch: feature-operational-error-observability-foundation, feature-container-runtime-contract
Stub 상태 안내: 이 runbook은 skeleton 단계의 stub. 도메인 도입 시 실제 deploy 파이프라인·heap dump 보관 경로·rollback 자동화 명령으로 보강 필요.