NestJS · · 1 min read

14. 헬스 체크

헬스 체크는 앱과 의존 서비스(DB·외부 API·디스크)의 상태를 점검하는 엔드포인트를 제공한다. 로드밸런서·쿠버네티스 프로브에 쓰인다. @nestjs/terminus 를 사용한다.

14.1. 설치

npm install @nestjs/terminus

14.2. 헬스 컨트롤러

@Controller('health')
export class HealthController {
  constructor(
    private health: HealthCheckService,
    private db: TypeOrmHealthIndicator,
    private http: HttpHealthIndicator,
  ) {}

  @Get()
  @HealthCheck()
  check() {
    return this.health.check([
      () => this.db.pingCheck('database'),
      () => this.http.pingCheck('external', 'https://example.com'),
    ]);
  }
}

14.3. 인디케이터

  • TypeOrmHealthIndicator — DB 연결 상태
  • HttpHealthIndicator — 외부 URL 응답
  • DiskHealthIndicator · MemoryHealthIndicator — 디스크·메모리 임계치