in internal/telemetrygen/logs/exporter.go [31:70]
func newExporter(cfg *Config) (exporter, error) {
// Exporter with HTTP
if cfg.UseHTTP {
if cfg.Insecure {
return &httpClientExporter{
client: http.DefaultClient,
cfg: cfg,
}, nil
}
creds, err := common.GetTLSCredentialsForHTTPExporter(cfg.CaFile, cfg.ClientAuth)
if err != nil {
return nil, fmt.Errorf("failed to get TLS credentials: %w", err)
}
return &httpClientExporter{
client: &http.Client{Transport: &http.Transport{TLSClientConfig: creds}},
cfg: cfg,
}, nil
}
// Exporter with GRPC
var err error
var clientConn *grpc.ClientConn
if cfg.Insecure {
clientConn, err = grpc.NewClient(cfg.Endpoint(), grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
return nil, err
}
} else {
creds, err := common.GetTLSCredentialsForGRPCExporter(cfg.CaFile, cfg.ClientAuth)
if err != nil {
return nil, fmt.Errorf("failed to get TLS credentials: %w", err)
}
clientConn, err = grpc.NewClient(cfg.Endpoint(), grpc.WithTransportCredentials(creds))
if err != nil {
return nil, err
}
}
return &gRPCClientExporter{client: plogotlp.NewGRPCClient(clientConn)}, nil
}