unified-storage: setup ring to shard requests (#103783)

* Updates the instrumentation_server service to use mux instead of the builtin router, and have it store the router in the module server: this is so we can register the /ring endpoint to check the status of the ring
* Create a new Ring service that depends on the instrumentation server and declares it as a dependency for the storage server
* Create standalone MemberlistKV service for Ring service to use
* Update the storage server Search and GetStats handler to distribute requests if applicable
This commit is contained in:
Will Assis
2025-04-25 13:08:44 -04:00
committed by GitHub
parent ff7b923d33
commit 4adebd6058
19 changed files with 654 additions and 25 deletions
+6 -1
View File
@@ -18,7 +18,12 @@ import (
func TestRunInstrumentationService(t *testing.T) {
cfg := setting.NewCfg()
cfg.HTTPPort = "3001"
s, err := NewInstrumentationService(log.New("test-logger"), cfg, prometheus.DefaultGatherer)
ms := ModuleServer{
log: log.New("test-logger"),
cfg: cfg,
promGatherer: prometheus.DefaultGatherer,
}
s, err := ms.initInstrumentationServer()
require.NoError(t, err)
ctx, cancel := context.WithTimeout(context.Background(), 300*time.Second)