From 06f6b765217fa75a6d1dbb32d4bb810629ea10ee Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin <valyala@victoriametrics.com> Date: Fri, 27 Jan 2023 14:37:04 -0800 Subject: [PATCH] app/vmagent: properly return 200 response code when importing data via Prometheus PushGateway protocol This is the same fix as has been already applied to app/vminsert at cdb6d651e93c102b67b5c1aa178ff0343bb6e112 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3636 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1415 --- app/vmagent/main.go | 9 ++++++++- docs/CHANGELOG.md | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/vmagent/main.go b/app/vmagent/main.go index 4ffca3f7dd..7b01e734cd 100644 --- a/app/vmagent/main.go +++ b/app/vmagent/main.go @@ -236,7 +236,14 @@ func requestHandler(w http.ResponseWriter, r *http.Request) bool { httpserver.Errorf(w, r, "%s", err) return true } - w.WriteHeader(http.StatusNoContent) + statusCode := http.StatusNoContent + if strings.HasPrefix(path, "/prometheus/api/v1/import/prometheus/metrics/job/") || + strings.HasPrefix(path, "/api/v1/import/prometheus/metrics/job/") { + // Return 200 status code for pushgateway requests. + // See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3636 + statusCode = http.StatusOK + } + w.WriteHeader(statusCode) return true } if strings.HasPrefix(path, "datadog/") { diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6ccd3c8424..0ef2f96dc1 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -28,6 +28,7 @@ The following tip changes can be tested by building VictoriaMetrics components f * BUGFIX: [VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html): propagate all the timeout-related errors from `vmstorage` to `vmselect` when `vmstorage`. Previously some timeout errors weren't returned from `vmselect` to `vmstorage`. Instead, `vmstorage` could log the error and close the connection to `vmselect`, so `vmselect` was logging cryptic errors such as `cannot execute funcName="..." on vmstorage "...": EOF`. * BUGFIX: [vmui](https://docs.victoriametrics.com/#vmui): add support for time zone selection for older versions of browsers. See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/3680). * BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): update API version for [ec2_sd_configs](https://docs.victoriametrics.com/sd_configs.html#ec2_sd_configs) to fix [the issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3700) with missing `__meta_ec2_availability_zone_id` attribute. +* BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): properly return `200 OK` HTTP status code when importing data via [Pushgateway protocol](https://docs.victoriametrics.com/#how-to-import-data-in-prometheus-exposition-format). See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3636). * BUGFIX: [vmauth](https://docs.victoriametrics.com/vmauth.html): allow re-entering authorization info in the web browser if the entered info was incorrect. Previously it was non-trivial to do via the web browser, since `vmauth` was returning `400 Bad Request` instead of `401 Unauthorized` http response code. * BUGFIX: [vmauth](https://docs.victoriametrics.com/vmauth.html): always log the client address and the requested URL on proxying errors. Previously some errors could miss this information.