В middleware засекаешь время через time.Now() до вызова next.ServeHTTP, после — вычисляешь duration через time.Since(start). Логируешь в миллисекундах или микросекундах. Это основная метрика для понимания производительности API. Можно также отправлять в Prometheus histogram для визуализации распределения latency.