ES /docs

Api::V1::FacilitiesController#spacetimes (avg 11652ms, max 11652ms)

Summary: Api::V1::FacilitiesController#spacetimes N+1 latency (avg 11.6s)

결과#

SpacetimeRepository#spacetimeseager_load:facility 를 추가해 SpacetimeSerializerspacetime.facility 를 참조할 때 발생하던 N+1 을 제거. 대형 facility(records 498건) 기준 11.6s tail latency 를 유발하던 근본 원인을 한 줄 수정으로 해소.

Pull Requests#

Repo PR Branch
tesla https://dev.azure.com/cupix/tesla/_git/tesla/pullrequest/88786 feature/TSLA-13556

변경 내용#

  • tesla: app/repositories/spacetime_repository.rb:11eager_load(:record, :level)eager_load(:record, :level, :facility).

Scope 및 Follow-up#

  • 이번 PR 은 RCA "즉시 조치 (Critical)" 두 항목 중 첫 번째(N+1 preload) 만 반영.
  • 미포함: spacetime_repository.rb:71per_page != 30 legacy pagination guard 제거. RCA 가 "프런트엔드 담당자와 협의" 를 명시 → 후속 티켓/PR 로 조율.
  • 미포함: SpacetimeSerializer 의 per-record FacilitySerializer.new(...).serializable_hash 인스턴스화 최적화 (RCA "단기 개선").
  • 미포함: Bullet gem/N+1 detector 도입, 프런트엔드 폴링 pub/sub 이관 (RCA "장기 개선").

Monitoring#

배포 후 24시간 아래 Datadog 쿼리로 latency 하락 확인:

  • max/p95/avg:trace.rack.request.duration{service:cupixworks-api,resource_name:api::v1::facilitiescontroller_spacetimes}
  • sum:trace.rack.request.hits{service:cupixworks-api,resource_name:api::v1::facilitiescontroller_spacetimes}.as_rate()

Cleanup#

bash
cd /home/ec2-user/repos/tesla
git worktree remove /home/ec2-user/error-sweeper/.worktrees/2e5b8b59-c109-459e-a8a4-a718317f5195/tesla