Backend Latency Profiler Helper
Find and fix API performance bottlenecks.
Slow Endpoint Detection
// Middleware to track latency app.use((req, res, next) => { const start = Date.now();
res.on("finish", () => { const duration = Date.now() - start;
if (duration > 1000) {
logger.warn(
{
endpoint: req.path,
method: req.method,
duration_ms: duration,
userId: req.user?.id,
},
"Slow request detected"
);
}
});
next(); });
Top Slow Endpoints
-- Query from logs SELECT endpoint, AVG(duration_ms) as avg_ms, MAX(duration_ms) as max_ms, COUNT(*) as requests FROM request_logs WHERE created_at > NOW() - INTERVAL '1 day' GROUP BY endpoint HAVING AVG(duration_ms) > 500 ORDER BY avg_ms DESC LIMIT 10;
Suspected Causes
interface PerformanceBottleneck { endpoint: string; avgLatency: number; suspectedCauses: string[]; fixPriority: "high" | "medium" | "low"; }
const bottlenecks: PerformanceBottleneck[] = [ { endpoint: "GET /api/users/:id", avgLatency: 2500, suspectedCauses: [ "N+1 query fetching user orders", "No database index on user_id", "Expensive JSON serialization", ], fixPriority: "high", }, ];
Fix Roadmap
Performance Fix Roadmap
Week 1: Quick Wins
- Add database indexes
- Enable response caching
- Fix N+1 queries
Week 2: Medium Effort
- Optimize slow database queries
- Implement Redis caching
- Add connection pooling
Week 3: Long-term
- Database query optimization
- Service decomposition
- CDN integration
Output Checklist
-
Slow endpoints identified
-
Causes analyzed
-
Fix roadmap created
-
Monitoring configured ENDFILE