Cache HttpUrl for exporters that use OkHttp (#4616)
This commit is contained in:
parent
514ae2c975
commit
d84a111273
|
|
@ -39,6 +39,7 @@ import javax.annotation.Nullable;
|
|||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
|
|
@ -65,7 +66,7 @@ public final class OkHttpGrpcExporter<T extends Marshaler> implements GrpcExport
|
|||
private final String type;
|
||||
private final ExporterMetrics exporterMetrics;
|
||||
private final OkHttpClient client;
|
||||
private final String endpoint;
|
||||
private final HttpUrl url;
|
||||
private final Headers headers;
|
||||
private final boolean compressionEnabled;
|
||||
|
||||
|
|
@ -81,7 +82,7 @@ public final class OkHttpGrpcExporter<T extends Marshaler> implements GrpcExport
|
|||
this.type = type;
|
||||
this.exporterMetrics = ExporterMetrics.createGrpcOkHttp(exporterName, type, meterProvider);
|
||||
this.client = client;
|
||||
this.endpoint = endpoint;
|
||||
this.url = HttpUrl.get(endpoint);
|
||||
this.headers = headers;
|
||||
this.compressionEnabled = compressionEnabled;
|
||||
}
|
||||
|
|
@ -90,7 +91,7 @@ public final class OkHttpGrpcExporter<T extends Marshaler> implements GrpcExport
|
|||
public CompletableResultCode export(T exportRequest, int numItems) {
|
||||
exporterMetrics.addSeen(numItems);
|
||||
|
||||
Request.Builder requestBuilder = new Request.Builder().url(endpoint).headers(headers);
|
||||
Request.Builder requestBuilder = new Request.Builder().url(url).headers(headers);
|
||||
|
||||
RequestBody requestBody = new GrpcRequestBody(exportRequest, compressionEnabled);
|
||||
requestBuilder.post(requestBody);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import javax.annotation.Nullable;
|
|||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
|
|
@ -45,7 +46,7 @@ public final class OkHttpExporter<T extends Marshaler> {
|
|||
|
||||
private final String type;
|
||||
private final OkHttpClient client;
|
||||
private final String endpoint;
|
||||
private final HttpUrl url;
|
||||
@Nullable private final Headers headers;
|
||||
private final boolean compressionEnabled;
|
||||
private final Function<T, RequestBody> requestBodyCreator;
|
||||
|
|
@ -63,7 +64,7 @@ public final class OkHttpExporter<T extends Marshaler> {
|
|||
boolean exportAsJson) {
|
||||
this.type = type;
|
||||
this.client = client;
|
||||
this.endpoint = endpoint;
|
||||
this.url = HttpUrl.get(endpoint);
|
||||
this.headers = headers;
|
||||
this.compressionEnabled = compressionEnabled;
|
||||
this.requestBodyCreator = exportAsJson ? JsonRequestBody::new : ProtoRequestBody::new;
|
||||
|
|
@ -73,7 +74,7 @@ public final class OkHttpExporter<T extends Marshaler> {
|
|||
public CompletableResultCode export(T exportRequest, int numItems) {
|
||||
exporterMetrics.addSeen(numItems);
|
||||
|
||||
Request.Builder requestBuilder = new Request.Builder().url(endpoint);
|
||||
Request.Builder requestBuilder = new Request.Builder().url(url);
|
||||
if (headers != null) {
|
||||
requestBuilder.headers(headers);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import java.util.logging.Level;
|
|||
import java.util.logging.Logger;
|
||||
import javax.annotation.Nullable;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
|
|
@ -37,7 +38,7 @@ final class OkHttpGrpcService<ReqMarshalerT extends Marshaler, ResUnMarshalerT e
|
|||
|
||||
private final String type;
|
||||
private final OkHttpClient client;
|
||||
private final String endpoint;
|
||||
private final HttpUrl url;
|
||||
private final Headers headers;
|
||||
private final boolean compressionEnabled;
|
||||
|
||||
|
|
@ -50,7 +51,7 @@ final class OkHttpGrpcService<ReqMarshalerT extends Marshaler, ResUnMarshalerT e
|
|||
boolean compressionEnabled) {
|
||||
this.type = type;
|
||||
this.client = client;
|
||||
this.endpoint = endpoint;
|
||||
this.url = HttpUrl.get(endpoint);
|
||||
this.headers = headers;
|
||||
this.compressionEnabled = compressionEnabled;
|
||||
}
|
||||
|
|
@ -58,7 +59,7 @@ final class OkHttpGrpcService<ReqMarshalerT extends Marshaler, ResUnMarshalerT e
|
|||
@Override
|
||||
public ResUnMarshalerT execute(
|
||||
ReqMarshalerT exportRequest, ResUnMarshalerT responseUnmarshaller) {
|
||||
Request.Builder requestBuilder = new Request.Builder().url(endpoint).headers(headers);
|
||||
Request.Builder requestBuilder = new Request.Builder().url(url).headers(headers);
|
||||
|
||||
RequestBody requestBody = new GrpcRequestBody(exportRequest, compressionEnabled);
|
||||
requestBuilder.post(requestBody);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider
|
|||
import io.opentelemetry.sdk.trace.samplers.Sampler;
|
||||
import java.util.HashMap;
|
||||
import java.util.ServiceLoader;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class JaegerRemoteSamplerProviderTest {
|
||||
|
|
@ -53,9 +54,10 @@ public class JaegerRemoteSamplerProviderTest {
|
|||
assertThat(s).extracting("serviceName").isEqualTo("test_service");
|
||||
assertThat(s)
|
||||
.extracting("delegate")
|
||||
.extracting("endpoint")
|
||||
.extracting("url")
|
||||
.isEqualTo(
|
||||
"http://localhost:9999/jaeger.api_v2.SamplingManager/GetSamplingStrategy");
|
||||
HttpUrl.get(
|
||||
"http://localhost:9999/jaeger.api_v2.SamplingManager/GetSamplingStrategy"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue