Merge pull request #17795 from chuanye-gao/fix/ready-stopping-header-test

web: fix /-/ready stopping header and add tests
This commit is contained in:
Bryan Boreham 2026-01-20 11:59:22 +00:00 committed by GitHub
commit d83e11926d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 1 deletions

View file

@ -634,8 +634,8 @@ func (h *Handler) testReady(f http.HandlerFunc) http.HandlerFunc {
case Ready:
f(w, r)
case NotReady:
w.WriteHeader(http.StatusServiceUnavailable)
w.Header().Set("X-Prometheus-Stopping", "false")
w.WriteHeader(http.StatusServiceUnavailable)
fmt.Fprintf(w, "Service Unavailable")
case Stopping:
w.Header().Set("X-Prometheus-Stopping", "true")

View file

@ -140,11 +140,32 @@ func TestReadyAndHealthy(t *testing.T) {
resp, err = http.Get(u)
require.NoError(t, err)
require.Equal(t, http.StatusServiceUnavailable, resp.StatusCode)
require.Equal(t, "false", resp.Header.Get("X-Prometheus-Stopping"))
cleanupTestResponse(t, resp)
resp, err = http.Head(u)
require.NoError(t, err)
require.Equal(t, http.StatusServiceUnavailable, resp.StatusCode)
require.Equal(t, "false", resp.Header.Get("X-Prometheus-Stopping"))
cleanupTestResponse(t, resp)
}
// Set to stopping
webHandler.SetReady(Stopping)
for _, u := range []string{
baseURL + "/-/ready",
} {
resp, err = http.Get(u)
require.NoError(t, err)
require.Equal(t, http.StatusServiceUnavailable, resp.StatusCode)
require.Equal(t, "true", resp.Header.Get("X-Prometheus-Stopping"))
cleanupTestResponse(t, resp)
resp, err = http.Head(u)
require.NoError(t, err)
require.Equal(t, http.StatusServiceUnavailable, resp.StatusCode)
require.Equal(t, "true", resp.Header.Get("X-Prometheus-Stopping"))
cleanupTestResponse(t, resp)
}