From 195ac63dbf4d81678cef13c3ced8ba8cd40d50e0 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Thu, 21 Jul 2022 19:30:06 +0300 Subject: [PATCH] Improve error logging when metrics cannot be pushed to pushURL passed to InitPush*() --- push.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/push.go b/push.go index 622a1e0..aa83771 100644 --- a/push.go +++ b/push.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io" + "io/ioutil" "log" "net/http" "time" @@ -108,14 +109,16 @@ func InitPushExt(pushURL string, interval time.Duration, extraLabels string, wri } resp, err := c.Post(pushURL, "text/plain", &bb) if err != nil { - log.Printf("cannot push metrics to %q: %s", pushURL, err) + log.Printf("ERROR: metrics.push: cannot push metrics to %q: %s", pushURL, err) + continue + } + if resp.StatusCode/100 != 2 { + body, _ := ioutil.ReadAll(resp.Body) + _ = resp.Body.Close() + log.Printf("ERROR: metrics.push: unexpected status code in response from %q: %d; expecting 2xx; response body: %q", pushURL, resp.StatusCode, body) continue } _ = resp.Body.Close() - if resp.StatusCode/100 != 2 { - log.Printf("unexpected status code in response from %q: %d; expecting 2xx", pushURL, resp.StatusCode) - continue - } } }() }