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

Function New

ring/ring.go:320–334  ·  view source on GitHub ↗

New creates a new Ring. Being a service, Ring needs to be started to do anything.

(cfg Config, name, key string, logger log.Logger, reg prometheus.Registerer)

Source from the content-addressed store, hash-verified

318
319// New creates a new Ring. Being a service, Ring needs to be started to do anything.
320func New(cfg Config, name, key string, logger log.Logger, reg prometheus.Registerer) (*Ring, error) {
321 codec := GetCodec()
322 // Suffix all client names with "-ring" to denote this kv client is used by the ring
323 store, err := kv.NewClient(
324 cfg.KVStore,
325 codec,
326 kv.RegistererWithKVName(reg, name+"-ring"),
327 logger,
328 )
329 if err != nil {
330 return nil, err
331 }
332
333 return NewWithStoreClientAndStrategy(cfg, name, key, store, NewDefaultReplicationStrategy(), reg, logger)
334}
335
336func NewWithStoreClientAndStrategy(cfg Config, name, key string, store kv.Client, strategy ReplicationStrategy, reg prometheus.Registerer, logger log.Logger) (*Ring, error) {
337 if cfg.ReplicationFactor <= 0 {

Calls 5

NewClientFunction · 0.92
RegistererWithKVNameFunction · 0.92
GetCodecFunction · 0.85