github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/shipper/indexgateway/lifecycle.go (about) 1 package indexgateway 2 3 import ( 4 "github.com/grafana/dskit/ring" 5 ) 6 7 func (rm *RingManager) OnRingInstanceRegister(_ *ring.BasicLifecycler, ringDesc ring.Desc, instanceExists bool, instanceID string, instanceDesc ring.InstanceDesc) (ring.InstanceState, ring.Tokens) { 8 // When we initialize the index gateway instance in the ring we want to start from 9 // a clean situation, so whatever is the state we set it JOINING, while we keep existing 10 // tokens (if any) or the ones loaded from file. 11 var tokens []uint32 12 if instanceExists { 13 tokens = instanceDesc.GetTokens() 14 } 15 16 takenTokens := ringDesc.GetTokens() 17 newTokens := ring.GenerateTokens(ringNumTokens-len(tokens), takenTokens) 18 19 // Tokens sorting will be enforced by the parent caller. 20 tokens = append(tokens, newTokens...) 21 22 return ring.JOINING, tokens 23 } 24 25 func (rm *RingManager) OnRingInstanceTokens(_ *ring.BasicLifecycler, _ ring.Tokens) {} 26 func (rm *RingManager) OnRingInstanceStopping(_ *ring.BasicLifecycler) {} 27 func (rm *RingManager) OnRingInstanceHeartbeat(_ *ring.BasicLifecycler, _ *ring.Desc, _ *ring.InstanceDesc) { 28 }