lib/promscrape: log the actual response size in the error message when the response size exceeds -promscrape.maxScrapeSize

This is a follow-up for 7ad9fff7e5
This commit is contained in:
Aliaksandr Valialkin 2022-12-28 14:42:07 -08:00
parent 1b16118e17
commit c4229a1bba
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1

View file

@ -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",