MCPcopy
hub / github.com/grafana/tempo / initGeneratorRingWatcher

Method initGeneratorRingWatcher

cmd/tempo/app/modules.go:354–381  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

352}
353
354func (t *App) initGeneratorRingWatcher() (services.Service, error) {
355 if IsSingleBinary(t.cfg.Target) || t.cfg.Generator.RingMode != generator.RingModeGenerator {
356 return services.NewIdleService(nil, nil), nil
357 }
358
359 reg := prometheus.DefaultRegisterer
360
361 kvRegisterer := kv.RegistererWithKVName(reg, t.cfg.Generator.OverrideRingKey+"-watcher")
362 kvClient, err := kv.NewClient(t.cfg.Generator.Ring.KVStore, ring.GetPartitionRingCodec(), kvRegisterer, util_log.Logger)
363 if err != nil {
364 return nil, fmt.Errorf("creating KV store for generator partition ring watcher: %w", err)
365 }
366
367 t.generatorRingWatcher = ring.NewPartitionRingWatcher(
368 t.cfg.Generator.OverrideRingKey,
369 t.cfg.Generator.OverrideRingKey,
370 kvClient,
371 util_log.Logger,
372 prometheus.WrapRegistererWithPrefix("tempo_", reg),
373 )
374
375 // Expose a web page to view the partition ring state.
376 editor := ring.NewPartitionRingEditor(t.cfg.Generator.OverrideRingKey, kvClient)
377 t.Server.HTTPRouter().Path("/partition/ring").Methods("GET", "POST").
378 Handler(ring.NewPartitionRingPageHandler(t.generatorRingWatcher, editor))
379
380 return t.generatorRingWatcher, nil
381}
382
383func (t *App) initBlockBuilder() (services.Service, error) {
384 t.cfg.BlockBuilder.IngestStorageConfig = t.cfg.Ingest

Callers

nothing calls this directly

Calls 3

IsSingleBinaryFunction · 0.85
HandlerMethod · 0.80
HTTPRouterMethod · 0.65

Tested by

no test coverage detected