Move HttpHeadersConfig methods back to instrumentation-api (#4298)
* Move HttpHeadersConfig methods back to instrumentation-api * remove unnecessary method
This commit is contained in:
parent
441ce3d115
commit
d3dbe415a1
|
@ -8,26 +8,14 @@ package io.opentelemetry.instrumentation.api.instrumenter.http;
|
||||||
import static java.util.Collections.emptyList;
|
import static java.util.Collections.emptyList;
|
||||||
|
|
||||||
import com.google.auto.value.AutoValue;
|
import com.google.auto.value.AutoValue;
|
||||||
|
import io.opentelemetry.instrumentation.api.config.Config;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the configuration that specifies which HTTP request/response headers should be
|
* Represents the configuration that specifies which HTTP request and response headers should be
|
||||||
* captured as span attributes.
|
* captured as span attributes as described in <a
|
||||||
*/
|
|
||||||
@AutoValue
|
|
||||||
public abstract class CapturedHttpHeaders {
|
|
||||||
|
|
||||||
private static final CapturedHttpHeaders EMPTY = create(emptyList(), emptyList());
|
|
||||||
|
|
||||||
/** Don't capture any HTTP headers as span attributes. */
|
|
||||||
public static CapturedHttpHeaders empty() {
|
|
||||||
return EMPTY;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Captures the configured HTTP request and response headers as span attributes as described in <a
|
|
||||||
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#http-request-and-response-headers">HTTP
|
* href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#http-request-and-response-headers">HTTP
|
||||||
* semantic conventions</a>.
|
* semantic conventions</a>.
|
||||||
*
|
*
|
||||||
|
@ -35,6 +23,43 @@ public abstract class CapturedHttpHeaders {
|
||||||
* attribute key. The HTTP response header values will be captured under the {@code
|
* attribute key. The HTTP response header values will be captured under the {@code
|
||||||
* http.response.header.<name>} attribute key. The {@code <name>} part in the attribute key is the
|
* http.response.header.<name>} attribute key. The {@code <name>} part in the attribute key is the
|
||||||
* normalized header name: lowercase, with dashes replaced by underscores.
|
* normalized header name: lowercase, with dashes replaced by underscores.
|
||||||
|
*/
|
||||||
|
@AutoValue
|
||||||
|
public abstract class CapturedHttpHeaders {
|
||||||
|
|
||||||
|
private static final CapturedHttpHeaders EMPTY = create(emptyList(), emptyList());
|
||||||
|
|
||||||
|
/** Returns a configuration that does not capture any HTTP headers as span attributes. */
|
||||||
|
public static CapturedHttpHeaders empty() {
|
||||||
|
return EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a configuration that captures HTTP client request and response headers as configured in
|
||||||
|
* the received {@code config}.
|
||||||
|
*/
|
||||||
|
public static CapturedHttpHeaders client(Config config) {
|
||||||
|
return CapturedHttpHeaders.create(
|
||||||
|
config.getList(
|
||||||
|
"otel.instrumentation.common.experimental.capture-http-headers.client.request"),
|
||||||
|
config.getList(
|
||||||
|
"otel.instrumentation.common.experimental.capture-http-headers.client.response"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a configuration that captures HTTP server request and response headers as configured in
|
||||||
|
* the received {@code config}.
|
||||||
|
*/
|
||||||
|
public static CapturedHttpHeaders server(Config config) {
|
||||||
|
return CapturedHttpHeaders.create(
|
||||||
|
config.getList(
|
||||||
|
"otel.instrumentation.common.experimental.capture-http-headers.server.request"),
|
||||||
|
config.getList(
|
||||||
|
"otel.instrumentation.common.experimental.capture-http-headers.server.response"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a configuration that captures chosen HTTP request and response headers.
|
||||||
*
|
*
|
||||||
* @param capturedRequestHeaders A list of HTTP request header names that are to be captured as
|
* @param capturedRequestHeaders A list of HTTP request header names that are to be captured as
|
||||||
* span attributes.
|
* span attributes.
|
||||||
|
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.api.instrumenter.http;
|
||||||
|
|
||||||
import io.opentelemetry.api.common.AttributesBuilder;
|
import io.opentelemetry.api.common.AttributesBuilder;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
import io.opentelemetry.instrumentation.api.config.Config;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -24,7 +25,7 @@ public abstract class HttpClientAttributesExtractor<REQUEST, RESPONSE>
|
||||||
extends HttpCommonAttributesExtractor<REQUEST, RESPONSE> {
|
extends HttpCommonAttributesExtractor<REQUEST, RESPONSE> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create the HTTP client attributes extractor.
|
* Creates the HTTP client attributes extractor.
|
||||||
*
|
*
|
||||||
* @param capturedHttpHeaders A configuration object specifying which HTTP request and response
|
* @param capturedHttpHeaders A configuration object specifying which HTTP request and response
|
||||||
* headers should be captured as span attributes.
|
* headers should be captured as span attributes.
|
||||||
|
@ -33,6 +34,11 @@ public abstract class HttpClientAttributesExtractor<REQUEST, RESPONSE>
|
||||||
super(capturedHttpHeaders);
|
super(capturedHttpHeaders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Creates the HTTP client attributes extractor with default configuration. */
|
||||||
|
protected HttpClientAttributesExtractor() {
|
||||||
|
this(CapturedHttpHeaders.client(Config.get()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected final void onStart(AttributesBuilder attributes, REQUEST request) {
|
protected final void onStart(AttributesBuilder attributes, REQUEST request) {
|
||||||
super.onStart(attributes, request);
|
super.onStart(attributes, request);
|
||||||
|
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.instrumentation.api.instrumenter.http.ForwarderHe
|
||||||
|
|
||||||
import io.opentelemetry.api.common.AttributesBuilder;
|
import io.opentelemetry.api.common.AttributesBuilder;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
import io.opentelemetry.instrumentation.api.config.Config;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -27,7 +28,7 @@ public abstract class HttpServerAttributesExtractor<REQUEST, RESPONSE>
|
||||||
extends HttpCommonAttributesExtractor<REQUEST, RESPONSE> {
|
extends HttpCommonAttributesExtractor<REQUEST, RESPONSE> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create the HTTP server attributes extractor.
|
* Creates the HTTP server attributes extractor.
|
||||||
*
|
*
|
||||||
* @param capturedHttpHeaders A configuration object specifying which HTTP request and response
|
* @param capturedHttpHeaders A configuration object specifying which HTTP request and response
|
||||||
* headers should be captured as span attributes.
|
* headers should be captured as span attributes.
|
||||||
|
@ -36,6 +37,11 @@ public abstract class HttpServerAttributesExtractor<REQUEST, RESPONSE>
|
||||||
super(capturedHttpHeaders);
|
super(capturedHttpHeaders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Creates the HTTP server attributes extractor with default configuration. */
|
||||||
|
protected HttpServerAttributesExtractor() {
|
||||||
|
this(CapturedHttpHeaders.server(Config.get()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected final void onStart(AttributesBuilder attributes, REQUEST request) {
|
protected final void onStart(AttributesBuilder attributes, REQUEST request) {
|
||||||
super.onStart(attributes, request);
|
super.onStart(attributes, request);
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient;
|
||||||
import static io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient.ApacheHttpClientRequest.headersToList;
|
import static io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient.ApacheHttpClientRequest.headersToList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.apache.http.StatusLine;
|
import org.apache.http.StatusLine;
|
||||||
|
@ -17,10 +16,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class ApacheHttpAsyncClientHttpAttributesExtractor
|
final class ApacheHttpAsyncClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<ApacheHttpClientRequest, HttpResponse> {
|
extends HttpClientAttributesExtractor<ApacheHttpClientRequest, HttpResponse> {
|
||||||
|
|
||||||
ApacheHttpAsyncClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(ApacheHttpClientRequest request) {
|
protected String method(ApacheHttpClientRequest request) {
|
||||||
return request.getMethod();
|
return request.getMethod();
|
||||||
|
|
|
@ -9,7 +9,6 @@ import static java.util.Collections.emptyList;
|
||||||
import static java.util.Collections.singletonList;
|
import static java.util.Collections.singletonList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.commons.httpclient.Header;
|
import org.apache.commons.httpclient.Header;
|
||||||
|
@ -22,10 +21,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class ApacheHttpClientHttpAttributesExtractor
|
final class ApacheHttpClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<HttpMethod, HttpMethod> {
|
extends HttpClientAttributesExtractor<HttpMethod, HttpMethod> {
|
||||||
|
|
||||||
ApacheHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(HttpMethod request) {
|
protected String method(HttpMethod request) {
|
||||||
return request.getName();
|
return request.getName();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0;
|
||||||
import static io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0.ApacheHttpClientRequest.headersToList;
|
import static io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0.ApacheHttpClientRequest.headersToList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -16,10 +15,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class ApacheHttpClientHttpAttributesExtractor
|
final class ApacheHttpClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<ApacheHttpClientRequest, HttpResponse> {
|
extends HttpClientAttributesExtractor<ApacheHttpClientRequest, HttpResponse> {
|
||||||
|
|
||||||
ApacheHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(ApacheHttpClientRequest request) {
|
protected String method(ApacheHttpClientRequest request) {
|
||||||
return request.getMethod();
|
return request.getMethod();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v5_0;
|
package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v5_0;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -26,10 +25,6 @@ final class ApacheHttpClientHttpAttributesExtractor
|
||||||
private static final Logger logger =
|
private static final Logger logger =
|
||||||
LoggerFactory.getLogger(ApacheHttpClientHttpAttributesExtractor.class);
|
LoggerFactory.getLogger(ApacheHttpClientHttpAttributesExtractor.class);
|
||||||
|
|
||||||
ApacheHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(ClassicHttpRequest request) {
|
protected String method(ClassicHttpRequest request) {
|
||||||
return request.getMethod();
|
return request.getMethod();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v1_9;
|
||||||
import com.ning.http.client.Request;
|
import com.ning.http.client.Request;
|
||||||
import com.ning.http.client.Response;
|
import com.ning.http.client.Response;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -17,10 +16,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class AsyncHttpClientHttpAttributesExtractor
|
final class AsyncHttpClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<Request, Response> {
|
extends HttpClientAttributesExtractor<Request, Response> {
|
||||||
|
|
||||||
AsyncHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(Request request) {
|
protected String method(Request request) {
|
||||||
return request.getMethod();
|
return request.getMethod();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
|
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.asynchttpclient.Response;
|
import org.asynchttpclient.Response;
|
||||||
|
@ -16,10 +15,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class AsyncHttpClientHttpAttributesExtractor
|
final class AsyncHttpClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<RequestContext, Response> {
|
extends HttpClientAttributesExtractor<RequestContext, Response> {
|
||||||
|
|
||||||
AsyncHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(RequestContext requestContext) {
|
protected String method(RequestContext requestContext) {
|
||||||
return requestContext.getRequest().getMethod();
|
return requestContext.getRequest().getMethod();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.googlehttpclient;
|
||||||
import com.google.api.client.http.HttpRequest;
|
import com.google.api.client.http.HttpRequest;
|
||||||
import com.google.api.client.http.HttpResponse;
|
import com.google.api.client.http.HttpResponse;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -16,10 +15,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class GoogleHttpClientHttpAttributesExtractor
|
final class GoogleHttpClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<HttpRequest, HttpResponse> {
|
extends HttpClientAttributesExtractor<HttpRequest, HttpResponse> {
|
||||||
|
|
||||||
GoogleHttpClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable String method(HttpRequest httpRequest) {
|
protected @Nullable String method(HttpRequest httpRequest) {
|
||||||
return httpRequest.getRequestMethod();
|
return httpRequest.getRequestMethod();
|
||||||
|
|
|
@ -9,7 +9,6 @@ import static java.util.Collections.emptyList;
|
||||||
import static java.util.Collections.singletonList;
|
import static java.util.Collections.singletonList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -18,10 +17,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
class HttpUrlHttpAttributesExtractor
|
class HttpUrlHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<HttpURLConnection, Integer> {
|
extends HttpClientAttributesExtractor<HttpURLConnection, Integer> {
|
||||||
|
|
||||||
HttpUrlHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(HttpURLConnection connection) {
|
protected String method(HttpURLConnection connection) {
|
||||||
return connection.getRequestMethod();
|
return connection.getRequestMethod();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.httpclient;
|
package io.opentelemetry.javaagent.instrumentation.httpclient;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.net.http.HttpClient.Version;
|
import java.net.http.HttpClient.Version;
|
||||||
import java.net.http.HttpRequest;
|
import java.net.http.HttpRequest;
|
||||||
|
@ -17,10 +16,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
class JdkHttpAttributesExtractor
|
class JdkHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<HttpRequest, HttpResponse<?>> {
|
extends HttpClientAttributesExtractor<HttpRequest, HttpResponse<?>> {
|
||||||
|
|
||||||
JdkHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(HttpRequest httpRequest) {
|
protected String method(HttpRequest httpRequest) {
|
||||||
return httpRequest.method();
|
return httpRequest.method();
|
||||||
|
|
|
@ -10,7 +10,6 @@ import static java.util.Collections.emptyList;
|
||||||
import com.sun.jersey.api.client.ClientRequest;
|
import com.sun.jersey.api.client.ClientRequest;
|
||||||
import com.sun.jersey.api.client.ClientResponse;
|
import com.sun.jersey.api.client.ClientResponse;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -19,10 +18,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class JaxRsClientHttpAttributesExtractor
|
final class JaxRsClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<ClientRequest, ClientResponse> {
|
extends HttpClientAttributesExtractor<ClientRequest, ClientResponse> {
|
||||||
|
|
||||||
JaxRsClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable String method(ClientRequest httpRequest) {
|
protected @Nullable String method(ClientRequest httpRequest) {
|
||||||
return httpRequest.getMethod();
|
return httpRequest.getMethod();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0;
|
||||||
import static java.util.Collections.emptyList;
|
import static java.util.Collections.emptyList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.ws.rs.client.ClientRequestContext;
|
import javax.ws.rs.client.ClientRequestContext;
|
||||||
|
@ -18,10 +17,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class JaxRsClientHttpAttributesExtractor
|
final class JaxRsClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<ClientRequestContext, ClientResponseContext> {
|
extends HttpClientAttributesExtractor<ClientRequestContext, ClientResponseContext> {
|
||||||
|
|
||||||
JaxRsClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable String method(ClientRequestContext httpRequest) {
|
protected @Nullable String method(ClientRequestContext httpRequest) {
|
||||||
return httpRequest.getMethod();
|
return httpRequest.getMethod();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0;
|
||||||
import static java.util.Collections.emptyList;
|
import static java.util.Collections.emptyList;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -19,10 +18,6 @@ import org.jboss.resteasy.client.jaxrs.internal.ClientInvocation;
|
||||||
final class ResteasyClientHttpAttributesExtractor
|
final class ResteasyClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<ClientInvocation, Response> {
|
extends HttpClientAttributesExtractor<ClientInvocation, Response> {
|
||||||
|
|
||||||
ResteasyClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable String method(ClientInvocation httpRequest) {
|
protected @Nullable String method(ClientInvocation httpRequest) {
|
||||||
return httpRequest.getMethod();
|
return httpRequest.getMethod();
|
||||||
|
|
|
@ -9,7 +9,6 @@ import static java.util.Collections.emptyList;
|
||||||
|
|
||||||
import io.kubernetes.client.openapi.ApiResponse;
|
import io.kubernetes.client.openapi.ApiResponse;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
|
@ -18,10 +17,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
class KubernetesHttpAttributesExtractor
|
class KubernetesHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<Request, ApiResponse<?>> {
|
extends HttpClientAttributesExtractor<Request, ApiResponse<?>> {
|
||||||
|
|
||||||
KubernetesHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(Request request) {
|
protected String method(Request request) {
|
||||||
return request.method();
|
return request.method();
|
||||||
|
|
|
@ -6,17 +6,12 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.liberty.dispatcher;
|
package io.opentelemetry.javaagent.instrumentation.liberty.dispatcher;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
public class LibertyDispatcherHttpAttributesExtractor
|
public class LibertyDispatcherHttpAttributesExtractor
|
||||||
extends HttpServerAttributesExtractor<LibertyRequest, LibertyResponse> {
|
extends HttpServerAttributesExtractor<LibertyRequest, LibertyResponse> {
|
||||||
|
|
||||||
public LibertyDispatcherHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedServerHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable String method(LibertyRequest libertyRequest) {
|
protected @Nullable String method(LibertyRequest libertyRequest) {
|
||||||
return libertyRequest.getMethod();
|
return libertyRequest.getMethod();
|
||||||
|
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.okhttp.v2_2;
|
||||||
import com.squareup.okhttp.Request;
|
import com.squareup.okhttp.Request;
|
||||||
import com.squareup.okhttp.Response;
|
import com.squareup.okhttp.Response;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -16,10 +15,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
final class OkHttp2HttpAttributesExtractor
|
final class OkHttp2HttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<Request, Response> {
|
extends HttpClientAttributesExtractor<Request, Response> {
|
||||||
|
|
||||||
OkHttp2HttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(Request request) {
|
protected String method(Request request) {
|
||||||
return request.method();
|
return request.method();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.playws;
|
package io.opentelemetry.javaagent.instrumentation.playws;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
@ -16,10 +15,6 @@ import play.shaded.ahc.org.asynchttpclient.Response;
|
||||||
final class PlayWsClientHttpAttributesExtractor
|
final class PlayWsClientHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<Request, Response> {
|
extends HttpClientAttributesExtractor<Request, Response> {
|
||||||
|
|
||||||
PlayWsClientHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedClientHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(Request request) {
|
protected String method(Request request) {
|
||||||
return request.getMethod();
|
return request.getMethod();
|
||||||
|
|
|
@ -7,7 +7,6 @@ package io.opentelemetry.javaagent.instrumentation.servlet;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
||||||
import io.opentelemetry.instrumentation.servlet.ServletAccessor;
|
import io.opentelemetry.instrumentation.servlet.ServletAccessor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
|
@ -17,7 +16,6 @@ public class ServletHttpAttributesExtractor<REQUEST, RESPONSE>
|
||||||
protected final ServletAccessor<REQUEST, RESPONSE> accessor;
|
protected final ServletAccessor<REQUEST, RESPONSE> accessor;
|
||||||
|
|
||||||
public ServletHttpAttributesExtractor(ServletAccessor<REQUEST, RESPONSE> accessor) {
|
public ServletHttpAttributesExtractor(ServletAccessor<REQUEST, RESPONSE> accessor) {
|
||||||
super(HttpHeadersConfig.capturedServerHeaders());
|
|
||||||
this.accessor = accessor;
|
this.accessor = accessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,8 @@ import org.springframework.http.client.ClientHttpResponse;
|
||||||
final class SpringWebHttpAttributesExtractor
|
final class SpringWebHttpAttributesExtractor
|
||||||
extends HttpClientAttributesExtractor<HttpRequest, ClientHttpResponse> {
|
extends HttpClientAttributesExtractor<HttpRequest, ClientHttpResponse> {
|
||||||
|
|
||||||
// TODO: add support for capturing HTTP headers in library instrumentations
|
SpringWebHttpAttributesExtractor(CapturedHttpHeaders capturedHttpHeaders) {
|
||||||
SpringWebHttpAttributesExtractor() {
|
super(capturedHttpHeaders);
|
||||||
super(CapturedHttpHeaders.empty());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -6,8 +6,10 @@
|
||||||
package io.opentelemetry.instrumentation.spring.web;
|
package io.opentelemetry.instrumentation.spring.web;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
|
import io.opentelemetry.instrumentation.api.config.Config;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
|
||||||
|
import io.opentelemetry.instrumentation.api.instrumenter.http.CapturedHttpHeaders;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
|
||||||
|
@ -23,6 +25,7 @@ public final class SpringWebTracingBuilder {
|
||||||
private final OpenTelemetry openTelemetry;
|
private final OpenTelemetry openTelemetry;
|
||||||
private final List<AttributesExtractor<HttpRequest, ClientHttpResponse>> additionalExtractors =
|
private final List<AttributesExtractor<HttpRequest, ClientHttpResponse>> additionalExtractors =
|
||||||
new ArrayList<>();
|
new ArrayList<>();
|
||||||
|
private CapturedHttpHeaders capturedHttpHeaders = CapturedHttpHeaders.client(Config.get());
|
||||||
|
|
||||||
SpringWebTracingBuilder(OpenTelemetry openTelemetry) {
|
SpringWebTracingBuilder(OpenTelemetry openTelemetry) {
|
||||||
this.openTelemetry = openTelemetry;
|
this.openTelemetry = openTelemetry;
|
||||||
|
@ -38,13 +41,25 @@ public final class SpringWebTracingBuilder {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the instrumentation to capture chosen HTTP request and response headers as span
|
||||||
|
* attributes.
|
||||||
|
*
|
||||||
|
* @param capturedHttpHeaders An instance of {@link CapturedHttpHeaders} containing the configured
|
||||||
|
* HTTP request and response names.
|
||||||
|
*/
|
||||||
|
public SpringWebTracingBuilder captureHttpHeaders(CapturedHttpHeaders capturedHttpHeaders) {
|
||||||
|
this.capturedHttpHeaders = capturedHttpHeaders;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a new {@link SpringWebTracing} with the settings of this {@link
|
* Returns a new {@link SpringWebTracing} with the settings of this {@link
|
||||||
* SpringWebTracingBuilder}.
|
* SpringWebTracingBuilder}.
|
||||||
*/
|
*/
|
||||||
public SpringWebTracing build() {
|
public SpringWebTracing build() {
|
||||||
SpringWebHttpAttributesExtractor httpAttributesExtractor =
|
SpringWebHttpAttributesExtractor httpAttributesExtractor =
|
||||||
new SpringWebHttpAttributesExtractor();
|
new SpringWebHttpAttributesExtractor(capturedHttpHeaders);
|
||||||
SpringWebNetAttributesExtractor netAttributesExtractor = new SpringWebNetAttributesExtractor();
|
SpringWebNetAttributesExtractor netAttributesExtractor = new SpringWebNetAttributesExtractor();
|
||||||
|
|
||||||
Instrumenter<HttpRequest, ClientHttpResponse> instrumenter =
|
Instrumenter<HttpRequest, ClientHttpResponse> instrumenter =
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.tomcat.common;
|
package io.opentelemetry.javaagent.instrumentation.tomcat.common;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.coyote.Request;
|
import org.apache.coyote.Request;
|
||||||
|
@ -17,10 +16,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
public class TomcatHttpAttributesExtractor
|
public class TomcatHttpAttributesExtractor
|
||||||
extends HttpServerAttributesExtractor<Request, Response> {
|
extends HttpServerAttributesExtractor<Request, Response> {
|
||||||
|
|
||||||
public TomcatHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedServerHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(Request request) {
|
protected String method(Request request) {
|
||||||
return request.method().toString();
|
return request.method().toString();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.javaagent.instrumentation.undertow;
|
package io.opentelemetry.javaagent.instrumentation.undertow;
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.config.HttpHeadersConfig;
|
|
||||||
import io.undertow.server.HttpServerExchange;
|
import io.undertow.server.HttpServerExchange;
|
||||||
import io.undertow.util.HeaderValues;
|
import io.undertow.util.HeaderValues;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -16,10 +15,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
public class UndertowHttpAttributesExtractor
|
public class UndertowHttpAttributesExtractor
|
||||||
extends HttpServerAttributesExtractor<HttpServerExchange, HttpServerExchange> {
|
extends HttpServerAttributesExtractor<HttpServerExchange, HttpServerExchange> {
|
||||||
|
|
||||||
public UndertowHttpAttributesExtractor() {
|
|
||||||
super(HttpHeadersConfig.capturedServerHeaders());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String method(HttpServerExchange exchange) {
|
protected String method(HttpServerExchange exchange) {
|
||||||
return exchange.getRequestMethod().toString();
|
return exchange.getRequestMethod().toString();
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.javaagent.instrumentation.api.config;
|
|
||||||
|
|
||||||
import io.opentelemetry.instrumentation.api.config.Config;
|
|
||||||
import io.opentelemetry.instrumentation.api.instrumenter.http.CapturedHttpHeaders;
|
|
||||||
|
|
||||||
/** Javaagent configuration of captured HTTP request/response headers. */
|
|
||||||
public final class HttpHeadersConfig {
|
|
||||||
|
|
||||||
private static final CapturedHttpHeaders CLIENT;
|
|
||||||
private static final CapturedHttpHeaders SERVER;
|
|
||||||
|
|
||||||
static {
|
|
||||||
Config config = Config.get();
|
|
||||||
CLIENT =
|
|
||||||
CapturedHttpHeaders.create(
|
|
||||||
config.getList(
|
|
||||||
"otel.instrumentation.common.experimental.capture-http-headers.client.request"),
|
|
||||||
config.getList(
|
|
||||||
"otel.instrumentation.common.experimental.capture-http-headers.client.response"));
|
|
||||||
SERVER =
|
|
||||||
CapturedHttpHeaders.create(
|
|
||||||
config.getList(
|
|
||||||
"otel.instrumentation.common.experimental.capture-http-headers.server.request"),
|
|
||||||
config.getList(
|
|
||||||
"otel.instrumentation.common.experimental.capture-http-headers.server.response"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CapturedHttpHeaders capturedClientHeaders() {
|
|
||||||
return CLIENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CapturedHttpHeaders capturedServerHeaders() {
|
|
||||||
return SERVER;
|
|
||||||
}
|
|
||||||
|
|
||||||
private HttpHeadersConfig() {}
|
|
||||||
}
|
|
Loading…
Reference in New Issue