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 }()
handler.ServeHTTP(w, r)
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"
w.Header().Set("Retry-After", RetryAfter)
http.Error(w, "Too many requests, please try again later.", errors.StatusTooManyRequests)