diff --git a/lib/promscrape/client.go b/lib/promscrape/client.go index e379a24b02..2be50051dc 100644 --- a/lib/promscrape/client.go +++ b/lib/promscrape/client.go @@ -322,12 +322,12 @@ func (c *client) ReadData(dst []byte) ([]byte, error) { } else if !swapResponseBodies { dst = append(dst, resp.Body()...) } + fasthttp.ReleaseResponse(resp) if len(dst) > c.hc.MaxResponseBodySize { maxScrapeSizeExceeded.Inc() - return dst, fmt.Errorf("the response from %q exceeds -promscrape.maxScrapeSize=%d; "+ - "either reduce the response size for the target or increase -promscrape.maxScrapeSize", c.scrapeURL, maxScrapeSize.N) + return dst, fmt.Errorf("the response from %q exceeds -promscrape.maxScrapeSize=%d (the actual response size is %d bytes); "+ + "either reduce the response size for the target or increase -promscrape.maxScrapeSize", c.scrapeURL, len(dst), maxScrapeSize.N) } - fasthttp.ReleaseResponse(resp) if statusCode != fasthttp.StatusOK { metrics.GetOrCreateCounter(fmt.Sprintf(`vm_promscrape_scrapes_total{status_code="%d"}`, statusCode)).Inc() return dst, fmt.Errorf("unexpected status code returned when scraping %q: %d; expecting %d; response body: %q",