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

Method unregisterInstance

ring/basic_lifecycler.go:441–466  ·  view source on GitHub ↗

unregister removes our entry from the store.

(ctx context.Context)

Source from the content-addressed store, hash-verified

439
440// unregister removes our entry from the store.
441func (l *BasicLifecycler) unregisterInstance(ctx context.Context) error {
442 level.Info(l.logger).Log("msg", "unregistering instance from ring", "ring", l.ringName)
443
444 err := l.store.CAS(ctx, l.ringKey, func(in interface{}) (out interface{}, retry bool, err error) {
445 if in == nil {
446 return nil, false, fmt.Errorf("found empty ring when trying to unregister")
447 }
448
449 ringDesc := in.(*Desc)
450 ringDesc.RemoveIngester(l.cfg.ID)
451 return ringDesc, true, nil
452 })
453
454 if err != nil {
455 return err
456 }
457
458 l.currState.Lock()
459 l.currInstanceDesc = nil
460 l.currState.Unlock()
461
462 l.metrics.tokensToOwn.Set(0)
463 l.metrics.tokensOwned.Set(0)
464 l.metrics.readOnly.Set(0)
465 return nil
466}
467
468func (l *BasicLifecycler) updateInstance(ctx context.Context, update func(*Desc, *InstanceDesc) bool) error {
469 var instanceDesc InstanceDesc

Callers 1

stoppingMethod · 0.95

Calls 5

ErrorfMethod · 0.80
RemoveIngesterMethod · 0.80
CASMethod · 0.65
SetMethod · 0.65
LogMethod · 0.45

Tested by

no test coverage detected