MCPcopy
hub / github.com/grafana/dskit / NewBasicLifecycler

Function NewBasicLifecycler

ring/basic_lifecycler.go:111–134  ·  view source on GitHub ↗

NewBasicLifecycler makes a new BasicLifecycler.

(cfg BasicLifecyclerConfig, ringName, ringKey string, store kv.Client, delegate BasicLifecyclerDelegate, logger log.Logger, reg prometheus.Registerer)

Source from the content-addressed store, hash-verified

109
110// NewBasicLifecycler makes a new BasicLifecycler.
111func NewBasicLifecycler(cfg BasicLifecyclerConfig, ringName, ringKey string, store kv.Client, delegate BasicLifecyclerDelegate, logger log.Logger, reg prometheus.Registerer) (*BasicLifecycler, error) {
112 tokenGenerator := cfg.RingTokenGenerator
113 if tokenGenerator == nil {
114 tokenGenerator = NewRandomTokenGenerator()
115 }
116
117 l := &BasicLifecycler{
118 cfg: cfg,
119 ringName: ringName,
120 ringKey: ringKey,
121 logger: logger,
122 store: store,
123 delegate: delegate,
124 metrics: NewBasicLifecyclerMetrics(ringName, reg),
125 actorChan: make(chan func()),
126 keepInstanceInTheRingOnShutdown: atomic.NewBool(cfg.KeepInstanceInTheRingOnShutdown),
127 tokenGenerator: tokenGenerator,
128 }
129
130 l.metrics.tokensToOwn.Set(float64(cfg.NumTokens))
131 l.BasicService = services.NewBasicService(l.starting, l.running, l.stopping)
132
133 return l, nil
134}
135
136func (l *BasicLifecycler) GetInstanceID() string {
137 return l.cfg.ID

Callers 2

SimpleRingLifecyclerFunction · 0.92

Calls 4

NewBasicServiceFunction · 0.92
NewRandomTokenGeneratorFunction · 0.85
SetMethod · 0.65

Tested by 1