MCPcopy Create free account
hub / github.com/cortexproject/cortex / TestUpdateMetricsWithZone

Function TestUpdateMetricsWithZone

pkg/ring/ring_test.go:3361–3477  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3359}
3360
3361func TestUpdateMetricsWithZone(t *testing.T) {
3362 cfg := Config{
3363 KVStore: kv.Config{},
3364 HeartbeatTimeout: 0, // get healthy stats
3365 ReplicationFactor: 3,
3366 ZoneAwarenessEnabled: true,
3367 DetailedMetricsEnabled: true,
3368 }
3369
3370 registry := prometheus.NewRegistry()
3371
3372 // create the ring to set up metrics, but do not start
3373 ring, err := NewWithStoreClientAndStrategy(cfg, testRingName, testRingKey, &MockClient{}, NewDefaultReplicationStrategy(), registry, log.NewNopLogger())
3374 require.NoError(t, err)
3375
3376 ringDesc := Desc{
3377 Ingesters: map[string]InstanceDesc{
3378 "A": {Addr: "127.0.0.1", Timestamp: 22, Zone: "zone1", Tokens: []uint32{math.MaxUint32 / 6, (math.MaxUint32 / 6) * 4}},
3379 "B": {Addr: "127.0.0.2", Timestamp: 11, Zone: "zone2", Tokens: []uint32{(math.MaxUint32 / 6) * 2, (math.MaxUint32 / 6) * 5}},
3380 "C": {Addr: "127.0.0.3", Timestamp: 33, Zone: "zone3", Tokens: []uint32{(math.MaxUint32 / 6) * 3, math.MaxUint32}},
3381 },
3382 }
3383 ring.updateRingState(&ringDesc)
3384
3385 err = testutil.GatherAndCompare(registry, bytes.NewBufferString(`
3386 # HELP ring_member_ownership_percent The percent ownership of the ring by member
3387 # TYPE ring_member_ownership_percent gauge
3388 ring_member_ownership_percent{member="A",name="test"} 0.3333333332557231
3389 ring_member_ownership_percent{member="B",name="test"} 0.3333333330228925
3390 ring_member_ownership_percent{member="C",name="test"} 0.3333333337213844
3391 # HELP ring_members Number of members in the ring
3392 # TYPE ring_members gauge
3393 ring_members{name="test",state="ACTIVE",zone="zone1"} 1
3394 ring_members{name="test",state="ACTIVE",zone="zone2"} 1
3395 ring_members{name="test",state="ACTIVE",zone="zone3"} 1
3396 ring_members{name="test",state="JOINING",zone="zone1"} 0
3397 ring_members{name="test",state="JOINING",zone="zone2"} 0
3398 ring_members{name="test",state="JOINING",zone="zone3"} 0
3399 ring_members{name="test",state="LEAVING",zone="zone1"} 0
3400 ring_members{name="test",state="LEAVING",zone="zone2"} 0
3401 ring_members{name="test",state="LEAVING",zone="zone3"} 0
3402 ring_members{name="test",state="PENDING",zone="zone1"} 0
3403 ring_members{name="test",state="PENDING",zone="zone2"} 0
3404 ring_members{name="test",state="PENDING",zone="zone3"} 0
3405 ring_members{name="test",state="READONLY",zone="zone1"} 0
3406 ring_members{name="test",state="READONLY",zone="zone2"} 0
3407 ring_members{name="test",state="READONLY",zone="zone3"} 0
3408 ring_members{name="test",state="Unhealthy",zone="zone1"} 0
3409 ring_members{name="test",state="Unhealthy",zone="zone2"} 0
3410 ring_members{name="test",state="Unhealthy",zone="zone3"} 0
3411 # HELP ring_oldest_member_timestamp Timestamp of the oldest member in the ring.
3412 # TYPE ring_oldest_member_timestamp gauge
3413 ring_oldest_member_timestamp{name="test",state="ACTIVE"} 11
3414 ring_oldest_member_timestamp{name="test",state="JOINING"} 0
3415 ring_oldest_member_timestamp{name="test",state="LEAVING"} 0
3416 ring_oldest_member_timestamp{name="test",state="PENDING"} 0
3417 ring_oldest_member_timestamp{name="test",state="READONLY"} 0
3418 ring_oldest_member_timestamp{name="test",state="Unhealthy"} 0

Callers

nothing calls this directly

Calls 3

updateRingStateMethod · 0.80

Tested by

no test coverage detected