AerialPhotosController#index serializer — synchronous S3 presigned_url calls causing bottleneck
Service
cupixworks-api
Occurrences
13
Status
Reported
Confidence
85%
Actionability
28%
Cluster ID
4f2844fb-6f67-4453-b29f-77e90ae8a7fe
First Seen
2026-05-27 09:15 UTC
Last Seen
2026-06-10 03:49 UTC
Actions
AerialPhotosController#index serializer — synchronous S3 presigned_url calls causing bottleneck
What Happened#
2026-05-27 09:15경, cupixworks-api의 AerialPhotosController#index 엔드포인트에서 1085ms 응답 지연이 발생했다. 동일 시간대에 동일 aerial_map(id: 451)에 대한 대량 업로드 워크플로우(29개 사진 동시 생성/업로드)가 진행 중이었으며, serializer가 각 레코드에 대해 S3 presigned URL을 동기적으로 생성하면서 응답 시간이 크게 증가했다.
Quick Facts#
| Field | Value |
|---|---|
| resource_name | Api::V1::AerialPhotosController#index |
| top_frame | app/serializers/aerial_photo_serializer.rb:29 |
| env | production, us-west-2 |
| deploy | production-us-west-2-20260527t0533z0-650f3601-cupixworks |
Timeline#
- 09:14:52Z — 사용자(Kristoffer Lundkvist, nestle team)가 aerial_map 451에 29개 aerial_photo 업로드 시작
- 09:15:20Z —
GET /api/v1/aerial_maps/451/aerial_photos요청 (fields에 upload_url 포함, per_page=250) - 09:15:21Z — 응답 완료 (1075ms 소요, DB=10ms, 나머지 ~1065ms는 presigned URL 생성)
- 09:16:06Z — 동일 엔드포인트 재요청 (1138ms, fields에 download_url 포함)
- 09:38:51Z — 서버 부하 감소 후 동일 요청 245ms로 정상 응답
Scoring#
Confidence 85% · Actionability 28%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 12 code refs, 2 log queries |
| Code path explicitness | 3/3 | 12 file:line refs |
| Log evidence | 3/3 | section, query, pattern |
| RCA structure | 3/3 | 3/3 sections |
| Revision history | 0/3 | 0 revision(s) |
| Agent execution | 3/3 | success |
Actionability#
| Dimension | Score | Detail |
|---|---|---|
| Fix complexity | 1/5 | critical |
| Affected files | 1/5 | 17 file(s) |
| Single repo | 1/3 | 2 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 0/3 | no test info |
| External dependency | 1/3 | external deps found |
| Data migration | 3/3 | no migration |