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

Method addProcessor

modules/generator/instance.go:312–354  ·  view source on GitHub ↗

addProcessor registers the processor and adds it to the processors map. Must be called under a write lock.

(processorName string, cfg ProcessorConfig)

Source from the content-addressed store, hash-verified

310// addProcessor registers the processor and adds it to the processors map. Must be called under a
311// write lock.
312func (i *instance) addProcessor(processorName string, cfg ProcessorConfig) error {
313 level.Debug(i.logger).Log("msg", "adding processor", "processorName", processorName)
314
315 var newProcessor processor.Processor
316 var err error
317 switch processorName {
318 case processor.SpanMetricsName:
319 filteredSpansCounter := metricSpansDiscarded.WithLabelValues(i.instanceID, reasonSpanMetricsFiltered, processor.SpanMetricsName)
320 invalidUTF8Counter := metricSpansDiscarded.WithLabelValues(i.instanceID, reasonInvalidUTF8, processor.SpanMetricsName)
321 newProcessor, err = spanmetrics.New(cfg.SpanMetrics, i.registry, filteredSpansCounter, invalidUTF8Counter)
322 if err != nil {
323 return err
324 }
325 case processor.ServiceGraphsName:
326 filteredSpansCounter := metricSpansDiscarded.WithLabelValues(i.instanceID, reasonServiceGraphsFiltered, processor.ServiceGraphsName)
327 invalidUTF8Counter := metricSpansDiscarded.WithLabelValues(i.instanceID, reasonInvalidUTF8, processor.ServiceGraphsName)
328 newProcessor, err = servicegraphs.New(cfg.ServiceGraphs, i.instanceID, i.registry, i.logger, filteredSpansCounter, invalidUTF8Counter)
329 if err != nil {
330 return err
331 }
332 case processor.HostInfoName:
333 invalidUTF8Counter := metricSpansDiscarded.WithLabelValues(i.instanceID, reasonInvalidUTF8, processor.HostInfoName)
334 newProcessor, err = hostinfo.New(cfg.HostInfo, i.registry, i.logger, invalidUTF8Counter)
335 if err != nil {
336 return err
337 }
338 default:
339 level.Error(i.logger).Log(
340 "msg", fmt.Sprintf("processor does not exist, supported processors: [%s]", strings.Join(validation.SupportedProcessors, ", ")),
341 "processorName", processorName,
342 )
343 return fmt.Errorf("unknown processor %s", processorName)
344 }
345
346 // check the processor wasn't added in the meantime
347 if _, ok := i.processors[processorName]; ok {
348 return nil
349 }
350
351 i.processors[processorName] = newProcessor
352
353 return nil
354}
355
356// removeProcessor removes the processor from the processors map and shuts it down. Must be called
357// under a write lock.

Callers 1

updateProcessorsMethod · 0.95

Calls 6

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
LogMethod · 0.65
ErrorMethod · 0.65
JoinMethod · 0.65

Tested by

no test coverage detected