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

Function loadBackend

cmd/tempo-cli/main.go:110–178  ·  view source on GitHub ↗
(b *backendOptions, g *globalOptions)

Source from the content-addressed store, hash-verified

108}
109
110func loadBackend(b *backendOptions, g *globalOptions) (backend.Reader, backend.Writer, backend.Compactor, error) {
111 // Defaults
112 cfg := app.Config{}
113 cfg.RegisterFlagsAndApplyDefaults("", &flag.FlagSet{})
114
115 // Existing config
116 if g.ConfigFile != "" {
117 buff, err := os.ReadFile(g.ConfigFile)
118 if err != nil {
119 return nil, nil, nil, fmt.Errorf("failed to read configFile %s: %w", g.ConfigFile, err)
120 }
121
122 err = yaml.UnmarshalStrict(buff, &cfg)
123 if err != nil {
124 return nil, nil, nil, fmt.Errorf("failed to parse configFile %s: %w", g.ConfigFile, err)
125 }
126 }
127
128 // cli overrides
129 if b.Backend != "" {
130 cfg.StorageConfig.Trace.Backend = b.Backend
131 }
132
133 if b.Bucket != "" {
134 cfg.StorageConfig.Trace.Local.Path = b.Bucket
135 cfg.StorageConfig.Trace.GCS.BucketName = b.Bucket
136 cfg.StorageConfig.Trace.S3.Bucket = b.Bucket
137 cfg.StorageConfig.Trace.Azure.ContainerName = b.Bucket
138 }
139
140 cfg.StorageConfig.Trace.S3.InsecureSkipVerify = b.InsecureSkipVerify
141 cfg.StorageConfig.Trace.GCS.Insecure = b.InsecureSkipVerify
142
143 if b.S3User != "" {
144 cfg.StorageConfig.Trace.S3.AccessKey = b.S3User
145 }
146
147 if b.S3Pass != "" {
148 cfg.StorageConfig.Trace.S3.SecretKey = flagext.SecretWithValue(b.S3Pass)
149 }
150
151 if b.S3Endpoint != "" {
152 cfg.StorageConfig.Trace.S3.Endpoint = b.S3Endpoint
153 }
154
155 var err error
156 var r backend.RawReader
157 var w backend.RawWriter
158 var c backend.Compactor
159
160 switch cfg.StorageConfig.Trace.Backend {
161 case backend.Local:
162 r, w, c, err = local.New(cfg.StorageConfig.Trace.Local)
163 case backend.GCS:
164 r, w, c, err = gcs.New(cfg.StorageConfig.Trace.GCS)
165 case backend.S3:
166 r, w, c, err = s3.New(cfg.StorageConfig.Trace.S3)
167 case backend.Azure:

Callers 13

RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
setupBackendsMethod · 0.85

Calls 7

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewReaderFunction · 0.92
NewWriterFunction · 0.92

Tested by

no test coverage detected