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

Function New

modules/distributor/forwarder/forwarder.go:46–75  ·  view source on GitHub ↗
(cfg Config, logger log.Logger, logLevel dslog.Level)

Source from the content-addressed store, hash-verified

44}
45
46func New(cfg Config, logger log.Logger, logLevel dslog.Level) (Forwarder, error) {
47 if err := cfg.Validate(); err != nil {
48 return nil, fmt.Errorf("failed to validate config: %w", err)
49 }
50
51 var forwarder Forwarder
52 switch cfg.Backend {
53 case OTLPGRPCBackend:
54 f, err := otlpgrpc.NewForwarder(cfg.OTLPGRPC, logger)
55 if err != nil {
56 return nil, fmt.Errorf("failed to create new otlpgrpc forwarder: %w", err)
57 }
58
59 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
60 defer cancel()
61 if err := f.Dial(ctx); err != nil {
62 return nil, fmt.Errorf("failed to dial: %w", err)
63 }
64
65 forwarder = f
66 default:
67 return nil, fmt.Errorf("%s backend is not supported", cfg.Backend)
68 }
69
70 if len(cfg.Filter.Traces.SpanConditions) > 0 || len(cfg.Filter.Traces.SpanEventConditions) > 0 {
71 return NewFilterForwarder(cfg.Filter, forwarder, logLevel)
72 }
73
74 return forwarder, nil
75}
76
77type FilterForwarder struct {
78 filterProcessor processor.Traces

Callers 1

NewManagerFunction · 0.70

Calls 4

DialMethod · 0.95
NewForwarderFunction · 0.92
NewFilterForwarderFunction · 0.85
ValidateMethod · 0.65

Tested by

no test coverage detected