본문으로 건너뛰기

운영 포인트

이 문서로 해결할 질문

  • Producer 장애 시 어디부터 확인하나요?
  • 헬스·메트릭·로그 진입점은 어디인가요?

헬스 체크

Endpoint용도
GET /health프로세스 생존
GET /readyPostgreSQL·MongoDB·Redis 연결

/ready가 실패하면 트래픽 라우팅을 중단하고 롤백을 검토합니다.

메트릭 (Prometheus)

  • Endpoint는 METRICS_PORT/metrics이며 METRICS_ENABLED=true일 때 노출됩니다.
  • 스크랩은 docker/prometheus/compose.yml에서 수행하며, PROMETHEUS_PRODUCER_TARGET(기본 producer:9100, 호스트 개발 시 host.docker.internal:9100)을 사용합니다.

주요 지표는 HTTP latency, Kafka produce 성공/실패, Redis·DB 연결 상태입니다.

로그·추적

  • Correlation-Id: X-Correlation-Id 요청/응답 헤더로 전파됩니다.
  • 구조화 JSON 로그는 @mealio/shared structured-logger를 사용합니다.
  • SentrySENTRY_DSN_PRODUCER로 연동합니다.

자주 보는 장애

증상확인
401 급증refresh 세션·쿠키 도메인, OAuth callback URL
429 급증rate limit 정책, Redis 연결
API 느림Redis hit rate, Prisma slow query (SLOW_QUERY_THRESHOLD_MS)
Kafka 발행 실패broker 연결, 토픽 존재 여부

배포·환경

  • Docker 배포 시 docker/producer/compose.yml을 사용합니다.
  • 컨테이너 env는 server/producer/.env.docker.local을 사용합니다.
  • POSTGRESQL_URL, MONGODB_URL, REDIS_URL은 각 환경에 맞는 연결 문자열로 설정합니다.

배포·환경 전략은 배포/환경 전략을 참고하세요.

검증 시나리오

Observability — 검증 (배포 후)에서 헬스, Correlation-Id, Prometheus를 확인합니다.

관련 문서