Skip to content

Commit 8250d87

Browse files
authored
Chore: Upgrade dskit (#4468)
* Chore: Upgrade dskit Signed-off-by: Arve Knudsen <[email protected]> * Fix tests Signed-off-by: Arve Knudsen <[email protected]> * Fix tests Signed-off-by: Arve Knudsen <[email protected]> * Fix integration tests Signed-off-by: Arve Knudsen <[email protected]> * Fix integration tests Signed-off-by: Arve Knudsen <[email protected]>
1 parent 74055d8 commit 8250d87

28 files changed

+207
-225
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ require (
2929
github.com/golang/protobuf v1.5.2
3030
github.com/golang/snappy v0.0.4
3131
github.com/gorilla/mux v1.8.0
32-
github.com/grafana/dskit v0.0.0-20210827060659-9daca2f00327
32+
github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4
3333
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
3434
github.com/json-iterator/go v1.1.11
3535
github.com/lib/pq v1.3.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -962,8 +962,8 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY
962962
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
963963
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
964964
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
965-
github.com/grafana/dskit v0.0.0-20210827060659-9daca2f00327 h1:THdW9RnugPdLwW8RmHB/xOcKf267QunSH1mDuaJkhWk=
966-
github.com/grafana/dskit v0.0.0-20210827060659-9daca2f00327/go.mod h1:+T2iuDOzx/BSQJSvli9FUvLM5HnV8aDPmXM8KWuVj3M=
965+
github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4 h1:OwWd9nQZYfb01HTJjleuO8eOP5t6Hl2EqVjng6W1juc=
966+
github.com/grafana/dskit v0.0.0-20210908150159-fcf48cb19aa4/go.mod h1:m3eHzwe5IT5eE2MI3Ena2ooU8+Hek8IiVXb9yJ1+0rs=
967967
github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85 h1:xLuzPoOzdfNb/RF/IENCw+oLVdZB4G21VPhkHBgwSHY=
968968
github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85/go.mod h1:crI9WX6p0IhrqB+DqIUHulRW853PaNFf7o4UprV//3I=
969969
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=

integration/kv_test.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//go:build requires_docker
12
// +build requires_docker
23

34
package integration
@@ -40,7 +41,7 @@ func TestKVList(t *testing.T) {
4041
sort.Strings(keys)
4142
require.Equal(t, keysToCreate, keys, "returned key paths did not match created paths")
4243

43-
verifyClientMetrics(t, reg, map[string]uint64{
44+
verifyClientMetricsHistogram(t, reg, "cortex_kv_request_duration_seconds", map[string]uint64{
4445
"List": 1,
4546
"CAS": 3,
4647
})
@@ -64,7 +65,7 @@ func TestKVDelete(t *testing.T) {
6465
require.NoError(t, err, "unexpected error")
6566
require.Nil(t, v, "object was not deleted")
6667

67-
verifyClientMetrics(t, reg, map[string]uint64{
68+
verifyClientMetricsHistogram(t, reg, "cortex_kv_request_duration_seconds", map[string]uint64{
6869
"Delete": 1,
6970
"CAS": 1,
7071
"GET": 1,
@@ -186,13 +187,20 @@ func testKVScenario(t *testing.T, kvSetupFn func(t *testing.T, scenario *e2e.Sce
186187
testFn(t, client, reg)
187188
}
188189

189-
func verifyClientMetrics(t *testing.T, reg *prometheus.Registry, sampleCounts map[string]uint64) {
190+
func verifyClientMetricsHistogram(t *testing.T, reg *prometheus.Registry, metricNameToVerify string, sampleCounts map[string]uint64) {
190191
metrics, err := reg.Gather()
191192
require.NoError(t, err)
192193

193-
require.Len(t, metrics, 1)
194-
require.Equal(t, "cortex_kv_request_duration_seconds", metrics[0].GetName())
195-
require.Equal(t, dto.MetricType_HISTOGRAM, metrics[0].GetType())
194+
var metricToVerify *dto.MetricFamily
195+
for _, metric := range metrics {
196+
if metric.GetName() != metricNameToVerify {
197+
continue
198+
}
199+
metricToVerify = metric
200+
break
201+
}
202+
require.NotNilf(t, metricToVerify, "Metric %s not found in registry", metricNameToVerify)
203+
require.Equal(t, dto.MetricType_HISTOGRAM, metricToVerify.GetType())
196204

197205
getMetricOperation := func(labels []*dto.LabelPair) (string, error) {
198206
for _, l := range labels {
@@ -203,9 +211,8 @@ func verifyClientMetrics(t *testing.T, reg *prometheus.Registry, sampleCounts ma
203211
return "", errors.New("no operation")
204212
}
205213

206-
for _, metric := range metrics[0].GetMetric() {
214+
for _, metric := range metricToVerify.GetMetric() {
207215
op, err := getMetricOperation(metric.Label)
208-
209216
require.NoErrorf(t, err, "No operation label found in metric %v", metric.String())
210217
assert.Equal(t, sampleCounts[op], metric.GetHistogram().GetSampleCount(), op)
211218
}

pkg/alertmanager/distributor_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ func prepare(t *testing.T, numAM, numHappyAM, replicationFactor int, responseBod
337337
amByAddr[a.myAddr] = ams[i]
338338
}
339339

340-
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
340+
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
341341
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
342342

343343
err := kvStore.CAS(context.Background(), RingKey,

pkg/alertmanager/multitenant_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ func TestMultitenantAlertmanager_deleteUnusedLocalUserState(t *testing.T) {
611611
func TestMultitenantAlertmanager_zoneAwareSharding(t *testing.T) {
612612
ctx := context.Background()
613613
alertStore := prepareInMemoryAlertStore()
614-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
614+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
615615
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
616616

617617
const (
@@ -691,7 +691,7 @@ func TestMultitenantAlertmanager_deleteUnusedRemoteUserState(t *testing.T) {
691691
)
692692

693693
alertStore := prepareInMemoryAlertStore()
694-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
694+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
695695
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
696696

697697
createInstance := func(i int) *MultitenantAlertmanager {
@@ -1008,7 +1008,7 @@ func TestMultitenantAlertmanager_InitialSyncWithSharding(t *testing.T) {
10081008
ctx := context.Background()
10091009
amConfig := mockAlertmanagerConfig(t)
10101010
amConfig.ShardingEnabled = true
1011-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1011+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
10121012
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
10131013

10141014
// Use an alert store with a mocked backend.
@@ -1113,7 +1113,7 @@ func TestMultitenantAlertmanager_PerTenantSharding(t *testing.T) {
11131113
for _, tt := range tc {
11141114
t.Run(tt.name, func(t *testing.T) {
11151115
ctx := context.Background()
1116-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1116+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
11171117
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
11181118

11191119
alertStore := prepareInMemoryAlertStore()
@@ -1302,7 +1302,7 @@ func TestMultitenantAlertmanager_SyncOnRingTopologyChanges(t *testing.T) {
13021302
amConfig.ShardingRing.RingCheckPeriod = 100 * time.Millisecond
13031303
amConfig.PollInterval = time.Hour // Don't trigger the periodic check.
13041304

1305-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1305+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
13061306
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
13071307

13081308
alertStore := prepareInMemoryAlertStore()
@@ -1355,7 +1355,7 @@ func TestMultitenantAlertmanager_RingLifecyclerShouldAutoForgetUnhealthyInstance
13551355
amConfig.ShardingRing.HeartbeatPeriod = 100 * time.Millisecond
13561356
amConfig.ShardingRing.HeartbeatTimeout = heartbeatTimeout
13571357

1358-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1358+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
13591359
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
13601360

13611361
alertStore := prepareInMemoryAlertStore()
@@ -1389,7 +1389,7 @@ func TestMultitenantAlertmanager_InitialSyncFailureWithSharding(t *testing.T) {
13891389
ctx := context.Background()
13901390
amConfig := mockAlertmanagerConfig(t)
13911391
amConfig.ShardingEnabled = true
1392-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1392+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
13931393
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
13941394

13951395
// Mock the store to fail listing configs.
@@ -1412,7 +1412,7 @@ func TestMultitenantAlertmanager_InitialSyncFailureWithSharding(t *testing.T) {
14121412

14131413
func TestAlertmanager_ReplicasPosition(t *testing.T) {
14141414
ctx := context.Background()
1415-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1415+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
14161416
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
14171417

14181418
mockStore := prepareInMemoryAlertStore()
@@ -1513,7 +1513,7 @@ func TestAlertmanager_StateReplicationWithSharding(t *testing.T) {
15131513
for _, tt := range tc {
15141514
t.Run(tt.name, func(t *testing.T) {
15151515
ctx := context.Background()
1516-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1516+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
15171517
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
15181518

15191519
mockStore := prepareInMemoryAlertStore()
@@ -1708,7 +1708,7 @@ func TestAlertmanager_StateReplicationWithSharding_InitialSyncFromPeers(t *testi
17081708
for _, tt := range tc {
17091709
t.Run(tt.name, func(t *testing.T) {
17101710
ctx := context.Background()
1711-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1711+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
17121712
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
17131713

17141714
mockStore := prepareInMemoryAlertStore()

pkg/compactor/compactor_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ func TestCompactor_ShouldCompactAllUsersOnShardingEnabledButOnlyOneInstanceRunni
813813
bucketClient.MockUpload("user-1/bucket-index.json.gz", nil)
814814
bucketClient.MockUpload("user-2/bucket-index.json.gz", nil)
815815

816-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
816+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
817817
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
818818

819819
cfg := prepareConfig()
@@ -893,7 +893,7 @@ func TestCompactor_ShouldCompactOnlyUsersOwnedByTheInstanceOnShardingEnabledAndM
893893
}
894894

895895
// Create a shared KV Store
896-
kvstore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
896+
kvstore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
897897
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
898898

899899
// Create two compactors
@@ -1216,7 +1216,7 @@ func TestCompactor_DeleteLocalSyncFiles(t *testing.T) {
12161216
}
12171217

12181218
// Create a shared KV Store
1219-
kvstore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1219+
kvstore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
12201220
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
12211221

12221222
// Create two compactors
@@ -1291,7 +1291,7 @@ func TestCompactor_ShouldFailCompactionOnTimeout(t *testing.T) {
12911291
bucketClient := &bucket.ClientMock{}
12921292
bucketClient.MockIter("", []string{}, nil)
12931293

1294-
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1294+
ringStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
12951295
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
12961296

12971297
cfg := prepareConfig()

pkg/cortex/modules.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ func (t *Cortex) initMemberlistKV() (services.Service, error) {
777777
),
778778
)
779779
dnsProvider := dns.NewProvider(util_log.Logger, dnsProviderReg, dns.GolangResolverType)
780-
t.MemberlistKV = memberlist.NewKVInitService(&t.Cfg.MemberlistKV, util_log.Logger, dnsProvider)
780+
t.MemberlistKV = memberlist.NewKVInitService(&t.Cfg.MemberlistKV, util_log.Logger, dnsProvider, reg)
781781
t.API.RegisterMemberlistKV(t.MemberlistKV)
782782

783783
// Update the config.

pkg/distributor/distributor_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ func TestDistributor_PushHAInstances(t *testing.T) {
686686
defer stopAll(ds, r)
687687
codec := GetReplicaDescCodec()
688688

689-
ringStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
689+
ringStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
690690
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
691691

692692
mock := kv.PrefixClient(ringStore, "prefix")
@@ -1586,7 +1586,7 @@ func BenchmarkDistributor_Push(b *testing.B) {
15861586
b.Run(testName, func(b *testing.B) {
15871587

15881588
// Create an in-memory KV store for the ring with 1 ingester registered.
1589-
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1589+
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
15901590
b.Cleanup(func() { assert.NoError(b, closer.Close()) })
15911591

15921592
err := kvStore.CAS(context.Background(), ring.IngesterRingKey,
@@ -1937,7 +1937,7 @@ func prepare(t *testing.T, cfg prepConfig) ([]*Distributor, []mockIngester, *rin
19371937
ingestersByAddr[addr] = &ingesters[i]
19381938
}
19391939

1940-
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
1940+
kvStore, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
19411941
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
19421942

19431943
err := kvStore.CAS(context.Background(), ring.IngesterRingKey,

pkg/distributor/ha_tracker_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func TestWatchPrefixAssignment(t *testing.T) {
119119
replica := "r1"
120120

121121
codec := GetReplicaDescCodec()
122-
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
122+
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
123123
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
124124

125125
mock := kv.PrefixClient(kvStore, "prefix")
@@ -306,7 +306,7 @@ func TestCheckReplicaUpdateTimeout(t *testing.T) {
306306
user := "user"
307307

308308
codec := GetReplicaDescCodec()
309-
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
309+
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
310310
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
311311

312312
mock := kv.PrefixClient(kvStore, "prefix")
@@ -355,7 +355,7 @@ func TestCheckReplicaMultiUser(t *testing.T) {
355355
cluster := "c1"
356356

357357
codec := GetReplicaDescCodec()
358-
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
358+
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
359359
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
360360

361361
mock := kv.PrefixClient(kvStore, "prefix")
@@ -435,7 +435,7 @@ func TestCheckReplicaUpdateTimeoutJitter(t *testing.T) {
435435
t.Run(testName, func(t *testing.T) {
436436
// Init HA tracker
437437
codec := GetReplicaDescCodec()
438-
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
438+
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
439439
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
440440

441441
mock := kv.PrefixClient(kvStore, "prefix")
@@ -534,7 +534,7 @@ func TestHAClustersLimit(t *testing.T) {
534534
const userID = "user"
535535

536536
codec := GetReplicaDescCodec()
537-
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger())
537+
kvStore, closer := consul.NewInMemoryClient(codec, log.NewNopLogger(), nil)
538538
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
539539

540540
mock := kv.PrefixClient(kvStore, "prefix")
@@ -703,7 +703,7 @@ func TestCheckReplicaCleanup(t *testing.T) {
703703

704704
reg := prometheus.NewPedanticRegistry()
705705

706-
kvStore, closer := consul.NewInMemoryClient(GetReplicaDescCodec(), log.NewNopLogger())
706+
kvStore, closer := consul.NewInMemoryClient(GetReplicaDescCodec(), log.NewNopLogger(), nil)
707707
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
708708

709709
mock := kv.PrefixClient(kvStore, "prefix")

pkg/ingester/lifecycle_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const userID = "1"
3636
func defaultIngesterTestConfig(t testing.TB) Config {
3737
t.Helper()
3838

39-
consul, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger())
39+
consul, closer := consul.NewInMemoryClient(ring.GetCodec(), log.NewNopLogger(), nil)
4040
t.Cleanup(func() { assert.NoError(t, closer.Close()) })
4141

4242
cfg := Config{}

0 commit comments

Comments
 (0)