Api::V1::SitetracksController#captures (avg 13190ms, max 13190ms)
Summary: Api::V1::SitetracksController#captures latency (avg 13190ms)
결과#
SitetrackRepository#captures 에 belongs_to 연관 preload 를 추가하여 CaptureSerializer 의 N+1 SQL 을 제거하는 PR 을 생성했다. Validator blind review 는 attempt 1 에서 APPROVED. RCA 의 단기 개선 primary 항목만 이번 PR 에 포함하고, serializer sparse-fieldsets 리팩터는 별도 이슈로 분리했다.
Pull Requests#
| Repo | PR | Branch |
|---|---|---|
| tesla | https://dev.azure.com/cupix/tesla/_git/tesla/pullrequest/88790 | feature/TSLA-13559 |
변경 내용#
- tesla:
app/repositories/sitetrack_repository.rb의captures메서드에서paginate앞에preload(:record, :level, :user, :team, :facility, :workspace)를 추가. Capture 모델에belongs_to로 실제 선언된 연관만 포함하여AssociationNotFoundError를 방지 (:floorplan/:camera는 concern 경유이므로 제외).
Follow-ups#
- 별도 이슈 필요: CaptureSerializer sparse-fieldsets 존중 리팩터 — 30여 개 concern 을 attribute 정의에
if: proc { params[:fields].include?(...) }로 감싸 requested field 만 실제 데이터 로드하도록 최적화. 회귀 위험이 커 이번 PR 에서 분리했다. - 관측성: RCA 의 Monitoring 섹션 쿼리를 Datadog release dashboard 에 추가하여 p95/max latency 를 fix 배포 전후로 비교.
Cleanup#
bash
cd /home/ec2-user/repos/tesla
git worktree remove /home/ec2-user/error-sweeper/.worktrees/e49dced0-5cfe-4d49-a823-9abb88cbcd67/tesla