io.opentelemetry.exporter.internal.grpc.GrpcSenderProvider Maven / Gradle / Ivy
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.internal.grpc;
import io.grpc.Channel;
import io.opentelemetry.exporter.internal.compression.Compressor;
import io.opentelemetry.exporter.internal.marshal.Marshaler;
import io.opentelemetry.sdk.common.export.RetryPolicy;
import java.net.URI;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Supplier;
import javax.annotation.Nullable;
import javax.net.ssl.SSLContext;
import javax.net.ssl.X509TrustManager;
/**
* A service provider interface (SPI) for providing {@link GrpcSender}s backed by different client
* libraries.
*
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
public interface GrpcSenderProvider {
/** Returns a {@link GrpcSender} configured with the provided parameters. */
@SuppressWarnings("TooManyParameters")
GrpcSender createSender(
URI endpoint,
String endpointPath,
@Nullable Compressor compressor,
long timeoutNanos,
long connectTimeoutNanos,
Supplier