diff --git a/integration/read_write_mode_test.go b/integration/read_write_mode_test.go index 455dd2b9a2c..d1ad3f9b13b 100644 --- a/integration/read_write_mode_test.go +++ b/integration/read_write_mode_test.go @@ -11,6 +11,7 @@ import ( "github.com/grafana/e2e" e2edb "github.com/grafana/e2e/db" "github.com/prometheus/common/model" + "github.com/prometheus/prometheus/model/labels" "github.com/prometheus/prometheus/prompb" "github.com/stretchr/testify/require" @@ -40,6 +41,13 @@ func TestReadWriteMode(t *testing.T) { c, err := e2emimir.NewClient(writeInstance.HTTPEndpoint(), readInstance.HTTPEndpoint(), "", "", "user-1") require.NoError(t, err) + // Wait for the ingester to join the ring and become active - this prevents "empty ring" errors later when we try to query data. + require.NoError(t, readInstance.WaitSumMetricsWithOptions( + e2e.Equals(1), + []string{"cortex_ring_members"}, + e2e.WithLabelMatchers(labels.MustNewMatcher(labels.MatchEqual, "name", "ingester"), labels.MustNewMatcher(labels.MatchEqual, "state", "ACTIVE")), + )) + // Push some data to the cluster. now := time.Now() series, expectedVector := generateSeries("test_series_1", now, prompb.Label{Name: "foo", Value: "bar"})