diff --git a/plugins/outputs/http/http.go b/plugins/outputs/http/http.go index 59d6f3d06..227565f10 100644 --- a/plugins/outputs/http/http.go +++ b/plugins/outputs/http/http.go @@ -230,19 +230,19 @@ func (h *HTTP) writeMetric(reqBody []byte) error { defer resp.Body.Close() if resp.StatusCode < 200 || resp.StatusCode >= 300 { - for _, nonRetryableStatusCode := range h.NonRetryableStatusCodes { - if resp.StatusCode == nonRetryableStatusCode { - h.Log.Errorf("Received non-retryable status %v. Metrics are lost.", resp.StatusCode) - return nil - } - } - errorLine := "" scanner := bufio.NewScanner(io.LimitReader(resp.Body, maxErrMsgLen)) if scanner.Scan() { errorLine = scanner.Text() } + for _, nonRetryableStatusCode := range h.NonRetryableStatusCodes { + if resp.StatusCode == nonRetryableStatusCode { + h.Log.Errorf("Received non-retryable status %v. Metrics are lost. body: %s", resp.StatusCode, errorLine) + return nil + } + } + return fmt.Errorf("when writing to [%s] received status code: %d. body: %s", h.URL, resp.StatusCode, errorLine) }