Backend Latency Profiler Helper
Find and fix API performance bottlenecks.
Slow Endpoint Detection
typescript
// 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
sql
-- 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
typescript
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
markdown
# 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