in pkg/tracegen/otlp.go [220:247]
func newOTLPHTTPExporters(ctx context.Context, endpointURL *url.URL, cfg Config) (*otlpExporters, error) {
tlsConfig := &tls.Config{InsecureSkipVerify: cfg.insecure}
traceOptions := []otlptracehttp.Option{
otlptracehttp.WithEndpoint(endpointURL.Host),
otlptracehttp.WithTLSClientConfig(tlsConfig),
}
if endpointURL.Scheme == "http" {
traceOptions = append(traceOptions, otlptracehttp.WithInsecure())
}
headers := map[string]string{"Authorization": "ApiKey " + cfg.apiKey}
traceOptions = append(traceOptions, otlptracehttp.WithHeaders(headers))
cleanup := func(context.Context) error { return nil }
otlpTraceExporter, err := otlptracehttp.New(ctx, traceOptions...)
if err != nil {
cleanup(ctx)
return nil, err
}
cleanup = combineCleanup(otlpTraceExporter.Shutdown, cleanup)
return &otlpExporters{
cleanup: cleanup,
trace: otlpTraceExporter,
log: &otlploghttpExporter{},
}, nil
}