ES /docs

QMAws::startTask | ECS failures - job_id: 110318, task_definition: nswgov-skat-master-production-arm

Fix Plan: QMAws::startTask ECS DRAINING failure 로그 severity 조정

Changes#

cupixworks: applications/agents/packages/cupix-tesla-compute-agent/src/model/qmAws.ts#

  • What: startTask 콜백 안 data.failures && data.failures.length > 0 분기(현재 logger.error 한 줄)에서, data.failures[]의 reason들이 모두 DRAINING 인 경우에만 logger.warn으로 다운그레이드. 그 외 (RESOURCE:*, AGENT, 기타/unknown) reason이 하나라도 섞여 있으면 기존대로 logger.error 유지. 로그 메시지 포맷과 인자, data.failures 시리얼라이즈 형태는 그대로 둠.
  • Why: RCA Root Cause Summary에 정리된 대로, DRAINING은 ASG lifecycle의 정상 상태이고 상위 runJob이 SQS 재전달 기반으로 자동 재시도하여 self-recovery 하는 정상 경로임. 반면 RESOURCE:*(GPU capacity 등)과 AGENT(agent 연결 이슈)는 별도 판단이 필요한 실 장애 신호이므로 error를 유지하는 편이 안전함. 본 변경은 alerting 노이즈를 줄이면서 실 장애 신호는 보존함.
  • Lines: qmAws.ts:195-204 (분기 판단 로직 및 로그 호출 한 줄)

Acceptance Criteria#

  • grep -n "logger.error('QMAws::startTask | ECS failures" applications/agents/packages/cupix-tesla-compute-agent/src/model/qmAws.ts이 non-DRAINING 분기에서만 매칭됨 (DRAINING-only 케이스는 logger.warn으로 전환)
  • data.failures 시리얼라이즈 결과(arn, reason, detail 매핑)와 메시지 템플릿 문자열이 이전과 동일하게 유지됨
  • pnpm exec tsc --noEmit (또는 pre-push type check)가 통과함 — 변경이 타입 오류를 유발하지 않음

Tests#

  • 기존 테스트: applications/agents/packages/cupix-tesla-compute-agent/**/*.spec.ts 중 qmAws.ts 관련 테스트 (있으면) 유지.
  • 신규 테스트: TRIVIAL 로그 레벨 조정이며 이전 유사 fix(TSLA-12514, c6afd4dc)에서도 테스트 미추가로 병합된 선례가 있음. 서비스 메모(cupixworks-any-compute-agent.md)의 "CI diff coverage 80% 요구" 언급을 감안, 스펙 파일 존재 여부를 확인 후 존재하면 케이스 추가 시도, 부재하면 생략.