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

Function New

modules/generator/generator.go:83–115  ·  view source on GitHub ↗

New makes a new Generator.

(cfg *Config, overrides metricsGeneratorOverrides, reg prometheus.Registerer, partitionRing ring.PartitionRingReader, logger log.Logger)

Source from the content-addressed store, hash-verified

81
82// New makes a new Generator.
83func New(cfg *Config, overrides metricsGeneratorOverrides, reg prometheus.Registerer, partitionRing ring.PartitionRingReader, logger log.Logger) (*Generator, error) {
84 if cfg.Storage.Path == "" {
85 return nil, ErrUnconfigured
86 }
87
88 if err := cfg.Validate(); err != nil {
89 return nil, err
90 }
91
92 err := os.MkdirAll(cfg.Storage.Path, 0o700)
93 if err != nil {
94 return nil, fmt.Errorf("failed to mkdir on %s: %w", cfg.Storage.Path, err)
95 }
96
97 g := &Generator{
98 cfg: cfg,
99 overrides: overrides,
100
101 instances: map[string]*instance{},
102 failedInstances: map[string]time.Time{},
103
104 partitionRing: partitionRing,
105 reg: reg,
106 logger: logger,
107 }
108 g.leaveGroupFn = func(ctx context.Context) error {
109 return ingest.LeaveConsumerGroupByInstanceID(ctx, g.kafkaClient.Client,
110 g.cfg.Ingest.Kafka.ConsumerGroup, g.cfg.InstanceID, g.logger)
111 }
112
113 g.Service = services.NewBasicService(g.starting, g.running, g.stopping)
114 return g, nil
115}
116
117func (g *Generator) starting(ctx context.Context) error {
118 if g.cfg.ConsumeFromKafka {

Calls 2

ValidateMethod · 0.65