in exporters/trace/src/main/java/com/google/cloud/opentelemetry/trace/InternalTraceExporter.java [70:114]
static SpanExporter createWithConfiguration(TraceConfiguration configuration) throws IOException {
String projectId = configuration.getProjectId();
TraceServiceStub stub = configuration.getTraceServiceStub();
// TODO: Remove stub - tracked in issue #198
if (stub == null) {
TraceServiceSettings.Builder builder = TraceServiceSettings.newBuilder();
// We only use the batchWriteSpans API in this exporter.
builder
.batchWriteSpansSettings()
.setSimpleTimeoutNoRetries(
org.threeten.bp.Duration.ofMillis(configuration.getDeadline().toMillis()));
// For testing, we need to hack around our gRPC config.
if (configuration.getInsecureEndpoint()) {
builder.setCredentialsProvider(NoCredentialsProvider.create());
builder.setTransportChannelProvider(
FixedTransportChannelProvider.create(
GrpcTransportChannel.create(
ManagedChannelBuilder.forTarget(configuration.getTraceServiceEndpoint())
.usePlaintext()
.build())));
} else {
Credentials credentials =
configuration.getCredentials() == null
? GoogleCredentials.getApplicationDefault()
: configuration.getCredentials();
builder.setCredentialsProvider(
FixedCredentialsProvider.create(checkNotNull(credentials, "credentials")));
builder.setEndpoint(configuration.getTraceServiceEndpoint());
builder.setHeaderProvider(HEADER_PROVIDER);
}
return new InternalTraceExporter(
projectId,
new CloudTraceClientImpl(TraceServiceClient.create(builder.build())),
configuration.getAttributeMapping(),
configuration.getFixedAttributes());
}
return InternalTraceExporter.createWithClient(
projectId,
new CloudTraceClientImpl(TraceServiceClient.create(stub)),
configuration.getAttributeMapping(),
configuration.getFixedAttributes());
}