B4-3: Performance аудит — Sentry Tracing + EXPLAIN slow queries #70

Closed
opened 2026-05-11 20:35:24 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:35:24 +00:00 (Migrated from github.com)

Эшелон: ⚙️ Backend API quality

Зачем

recommend_mix исторически медленный. analyze_parcel делает 5 PostGIS запросов последовательно. Нет данных о p95 latency.

Что сделать

Sentry Performance

  • Включить traces_sample_rate=0.2 в sentry_sdk.init
  • Auto-instrumentation для FastAPI + SQLAlchemy
  • Dashboard в Sentry: top 10 slow transactions

Targets

  • /analytics/recommend POST ≤2с p95
  • /parcels/{id}/analyze ≤3с p95
  • /analytics/market-pulse ≤500ms p95

EXPLAIN ANALYZE

  • Top slow queries через mcp__postgres-gendesign__explain_query
  • Missing indexes (postgres MCP analyze_workload_indexes)
  • Refactor: analyze_parcel 5 sequential queries → asyncio.gather параллельно (district/POI/competitors независимы)

Bonus

  • pgBouncer connection pooling — если connections >50 одновременно

Acceptance

  • Sentry Performance dashboard визибл
  • Все 3 targets соблюдаются (p95)
  • Top-5 slow queries либо оптимизированы либо документированы

Owner

backend-engineer

Effort

~2-3 дня

**Эшелон:** ⚙️ Backend API quality ## Зачем `recommend_mix` исторически медленный. `analyze_parcel` делает 5 PostGIS запросов последовательно. Нет данных о p95 latency. ## Что сделать ### Sentry Performance - Включить `traces_sample_rate=0.2` в `sentry_sdk.init` - Auto-instrumentation для FastAPI + SQLAlchemy - Dashboard в Sentry: top 10 slow transactions ### Targets - `/analytics/recommend` POST ≤2с p95 - `/parcels/{id}/analyze` ≤3с p95 - `/analytics/market-pulse` ≤500ms p95 ### EXPLAIN ANALYZE - Top slow queries через `mcp__postgres-gendesign__explain_query` - Missing indexes (postgres MCP `analyze_workload_indexes`) - Refactor: `analyze_parcel` 5 sequential queries → `asyncio.gather` параллельно (district/POI/competitors независимы) ### Bonus - pgBouncer connection pooling — если connections >50 одновременно ## Acceptance - [ ] Sentry Performance dashboard визибл - [ ] Все 3 targets соблюдаются (p95) - [ ] Top-5 slow queries либо оптимизированы либо документированы ## Owner `backend-engineer` ## Effort ~2-3 дня
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#70
No description provided.