Log requests returning TooManyRequests error

This commit is contained in:
Wojciech Tyczynski 2016-05-20 10:18:05 +02:00
parent ab10484330
commit f3c70ffeeb

View File

@ -119,12 +119,16 @@ func MaxInFlightLimit(c chan bool, longRunningRequestCheck LongRunningRequestChe
defer func() { <-c }() defer func() { <-c }()
handler.ServeHTTP(w, r) handler.ServeHTTP(w, r)
default: default:
tooManyRequests(w) tooManyRequests(r, w)
} }
}) })
} }
func tooManyRequests(w http.ResponseWriter) { func tooManyRequests(req *http.Request, w http.ResponseWriter) {
// "Too Many Requests" response is returned before logger is setup for the request.
// So we need to explicitly log it here.
defer httplog.NewLogged(req, &w).Log()
// Return a 429 status indicating "Too Many Requests" // Return a 429 status indicating "Too Many Requests"
w.Header().Set("Retry-After", RetryAfter) w.Header().Set("Retry-After", RetryAfter)
http.Error(w, "Too many requests, please try again later.", errors.StatusTooManyRequests) http.Error(w, "Too many requests, please try again later.", errors.StatusTooManyRequests)