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

Function New

modules/distributor/receiver/shim.go:157–301  ·  view source on GitHub ↗
(receiverCfg map[string]interface{}, pusher TracesPusher, middleware Middleware, retryAfterDuration time.Duration, logLevel dslog.Level, reg prometheus.Registerer)

Source from the content-addressed store, hash-verified

155func (m *mapProvider) Shutdown(context.Context) error { return nil }
156
157func New(receiverCfg map[string]interface{}, pusher TracesPusher, middleware Middleware, retryAfterDuration time.Duration, logLevel dslog.Level, reg prometheus.Registerer) (services.Service, error) {
158 shim := &receiversShim{
159 pusher: pusher,
160 logger: log.NewRateLimitedLogger(logsPerSecond, level.Error(log.Logger)),
161 fatal: make(chan error),
162 }
163
164 if retryAfterDuration > 0 {
165 shim.retryDelay = durationpb.New(retryAfterDuration)
166 }
167
168 // shim otel observability
169 zapLogger := newLogger(logLevel)
170
171 // load config
172 receiverFactories, err := otelcol.MakeFactoryMap(
173 jaegerreceiver.NewFactory(),
174 zipkinreceiver.NewFactory(),
175 otlpreceiver.NewFactory(),
176 kafkareceiver.NewFactory(),
177 )
178 if err != nil {
179 return nil, err
180 }
181
182 for recv := range receiverCfg {
183 switch recv {
184 case "otlp":
185 statReceiverOtlp.Set(1)
186 case "jaeger":
187 statReceiverJaeger.Set(1)
188 case "zipkin":
189 statReceiverZipkin.Set(1)
190 case "kafka":
191 statReceiverKafka.Set(1)
192 }
193 }
194
195 receivers := make([]string, 0, len(receiverCfg))
196 for k := range receiverCfg {
197 receivers = append(receivers, k)
198 }
199
200 // Define a factory function to create the mock provider
201 mockProviderFactory := confmap.NewProviderFactory(func(confmap.ProviderSettings) confmap.Provider {
202 return &mapProvider{
203 raw: map[string]interface{}{
204 "receivers": receiverCfg,
205 "exporters": map[string]interface{}{
206 "nop": map[string]interface{}{},
207 },
208 "service": map[string]interface{}{
209 "pipelines": map[string]interface{}{
210 "traces": map[string]interface{}{
211 "exporters": []string{"nop"}, // nop exporter to avoid errors
212 "receivers": receivers,
213 },
214 },

Callers 2

NewFunction · 0.92
runReceiverShimFunction · 0.70

Calls 8

NewRateLimitedLoggerFunction · 0.92
NewMeterProviderFunction · 0.85
newLoggerFunction · 0.70
ErrorMethod · 0.65
SetMethod · 0.65
GetMethod · 0.65
WrapMethod · 0.65
StringMethod · 0.45

Tested by 1

runReceiverShimFunction · 0.56