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