diff --git a/web/api/v1/api.go b/web/api/v1/api.go index 1b2398b56..64416f140 100644 --- a/web/api/v1/api.go +++ b/web/api/v1/api.go @@ -210,10 +210,9 @@ type API struct { isAgent bool statsRenderer StatsRenderer - remoteWriteHeadHandler http.Handler - remoteWriteHandler http.Handler - remoteReadHandler http.Handler - otlpWriteHandler http.Handler + remoteWriteHandler http.Handler + remoteReadHandler http.Handler + otlpWriteHandler http.Handler codecs []Codec } @@ -290,20 +289,7 @@ func NewAPI( } if rwEnabled { - // TODO(alexg) - Two phase rwFormat rollout needs to create handlers with flag for advertising. - // For rollout we do two phases: - // 0. (Before) no flags set - // 1. (During) support new protocols but don't advertise - // - // 2. (After) support new protocols and advertise - // - // For rollback the two phases are: - // 0. (Before) support new protocols and advertise - // 1. (During) support new protocols but don't advertise - // - // 2. (After) no flags set a.remoteWriteHandler = remote.NewWriteHandler(logger, registerer, ap, rwFormat) - a.remoteWriteHeadHandler = remote.NewWriteHeadHandler(logger, registerer, rwFormat) } if otlpEnabled { a.otlpWriteHandler = remote.NewOTLPWriteHandler(logger, ap) @@ -400,7 +386,6 @@ func (api *API) Register(r *route.Router) { r.Get("/status/walreplay", api.serveWALReplayStatus) r.Post("/read", api.ready(api.remoteRead)) r.Post("/write", api.ready(api.remoteWrite)) - r.Head("/write", api.remoteWriteHead) r.Post("/otlp/v1/metrics", api.ready(api.otlpWrite)) r.Get("/alerts", wrapAgent(api.alerts)) @@ -1661,14 +1646,6 @@ func (api *API) remoteRead(w http.ResponseWriter, r *http.Request) { } } -func (api *API) remoteWriteHead(w http.ResponseWriter, r *http.Request) { - if api.remoteWriteHeadHandler != nil { - api.remoteWriteHeadHandler.ServeHTTP(w, r) - } else { - http.Error(w, "remote write receiver needs to be enabled with --web.enable-remote-write-receiver", http.StatusNotFound) - } -} - func (api *API) remoteWrite(w http.ResponseWriter, r *http.Request) { if api.remoteWriteHandler != nil { api.remoteWriteHandler.ServeHTTP(w, r) diff --git a/web/api/v1/api_test.go b/web/api/v1/api_test.go index 865e475ed..74627d807 100644 --- a/web/api/v1/api_test.go +++ b/web/api/v1/api_test.go @@ -337,48 +337,6 @@ var sampleFlagMap = map[string]string{ "flag2": "value2", } -func TestHeadEndpoint(t *testing.T) { - for _, tc := range []struct { - name string - rwFormat config.RemoteWriteFormat - expectedStatusCode int - expectedHeaderValue string - }{ - { - name: "HEAD Version 1", - rwFormat: remote.Version1, - expectedStatusCode: http.StatusOK, - expectedHeaderValue: "0.1.0", - }, - { - name: "HEAD Version 2", - rwFormat: remote.Version2, - expectedStatusCode: http.StatusOK, - expectedHeaderValue: "2.0;snappy,0.1.0", - }, - } { - r := route.New() - api := &API{ - remoteWriteHeadHandler: remote.NewWriteHeadHandler(log.NewNopLogger(), nil, tc.rwFormat), - ready: func(f http.HandlerFunc) http.HandlerFunc { return f }, - } - api.Register(r) - - s := httptest.NewServer(r) - defer s.Close() - - req, err := http.NewRequest(http.MethodHead, s.URL+"/write", nil) - require.NoError(t, err, "Error creating HEAD request") - client := &http.Client{} - resp, err := client.Do(req) - require.NoError(t, err, "Error executing HEAD request") - require.Equal(t, tc.expectedStatusCode, resp.StatusCode) - - promHeader := resp.Header.Get(remote.RemoteWriteVersionHeader) - require.Equal(t, tc.expectedHeaderValue, promHeader) - } -} - func TestEndpoints(t *testing.T) { storage := promql.LoadedStorage(t, ` load 1m