Move and rename NetPeerUtils (#2548)
* Move and rename NetPeerUtils * Rename NetPeerUtils to NetPeerAttributes; inject instance instead of using a global var * Rename SpanAttributeSetter to AttributeSetter (might be used to set on AttributesBuilder in the future, who knows) * Deprecate default BaseTracer constructor: library instrumentations are supposed to inject all dependencies, the javaagent should explicitly pass globals * fix compilation failure * Remove peer.service customization from library instrumentation
This commit is contained in:
parent
c1718baf23
commit
ae23b97ec4
|
|
@ -50,12 +50,4 @@
|
|||
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<Class name="io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils"/>
|
||||
<Method name="setNetPeer"
|
||||
params="io.opentelemetry.api.trace.Span,java.lang.String,java.lang.String,int"
|
||||
returns="void"/>
|
||||
<Bug pattern="UC_USELESS_VOID_METHOD"/>
|
||||
</Match>
|
||||
|
||||
</FindBugsFilter>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.api.tracer;
|
||||
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
|
||||
/** This helper interface allows setting attributes on both {@link Span} and {@link SpanBuilder}. */
|
||||
@FunctionalInterface
|
||||
public interface AttributeSetter {
|
||||
<T> void setAttribute(AttributeKey<T> key, T value);
|
||||
}
|
||||
|
|
@ -55,6 +55,13 @@ public abstract class BaseTracer {
|
|||
private final Tracer tracer;
|
||||
private final ContextPropagators propagators;
|
||||
|
||||
/**
|
||||
* Instead of using this always pass an OpenTelemetry instance; javaagent tracers should
|
||||
* explicitly pass {@code GlobalOpenTelemetry.get()} to the constructor.
|
||||
*
|
||||
* @deprecated always pass an OpenTelemetry instance.
|
||||
*/
|
||||
@Deprecated
|
||||
public BaseTracer() {
|
||||
this(GlobalOpenTelemetry.get());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT;
|
|||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
|
@ -24,12 +24,17 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
|||
*/
|
||||
public abstract class DatabaseClientTracer<CONNECTION, STATEMENT, SANITIZEDSTATEMENT>
|
||||
extends BaseTracer {
|
||||
protected static final String DB_QUERY = "DB Query";
|
||||
private static final String DB_QUERY = "DB Query";
|
||||
|
||||
public DatabaseClientTracer() {}
|
||||
protected final NetPeerAttributes netPeerAttributes;
|
||||
|
||||
public DatabaseClientTracer(OpenTelemetry openTelemetry) {
|
||||
public DatabaseClientTracer(NetPeerAttributes netPeerAttributes) {
|
||||
this.netPeerAttributes = netPeerAttributes;
|
||||
}
|
||||
|
||||
public DatabaseClientTracer(OpenTelemetry openTelemetry, NetPeerAttributes netPeerAttributes) {
|
||||
super(openTelemetry);
|
||||
this.netPeerAttributes = netPeerAttributes;
|
||||
}
|
||||
|
||||
public boolean shouldStartSpan(Context parentContext) {
|
||||
|
|
@ -121,7 +126,7 @@ public abstract class DatabaseClientTracer<CONNECTION, STATEMENT, SANITIZEDSTATE
|
|||
}
|
||||
|
||||
protected void setNetSemanticConvention(SpanBuilder span, CONNECTION connection) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, peerAddress(connection));
|
||||
netPeerAttributes.setNetPeer(span, peerAddress(connection));
|
||||
}
|
||||
|
||||
protected abstract InetSocketAddress peerAddress(CONNECTION connection);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.opentelemetry.api.trace.SpanBuilder;
|
|||
import io.opentelemetry.api.trace.SpanKind;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -30,12 +30,16 @@ public abstract class HttpClientTracer<REQUEST, CARRIER, RESPONSE> extends BaseT
|
|||
|
||||
protected static final String USER_AGENT = "User-Agent";
|
||||
|
||||
protected HttpClientTracer() {
|
||||
protected final NetPeerAttributes netPeerAttributes;
|
||||
|
||||
protected HttpClientTracer(NetPeerAttributes netPeerAttributes) {
|
||||
super();
|
||||
this.netPeerAttributes = netPeerAttributes;
|
||||
}
|
||||
|
||||
protected HttpClientTracer(OpenTelemetry openTelemetry) {
|
||||
protected HttpClientTracer(OpenTelemetry openTelemetry, NetPeerAttributes netPeerAttributes) {
|
||||
super(openTelemetry);
|
||||
this.netPeerAttributes = netPeerAttributes;
|
||||
}
|
||||
|
||||
protected abstract String method(REQUEST request);
|
||||
|
|
@ -166,7 +170,7 @@ public abstract class HttpClientTracer<REQUEST, CARRIER, RESPONSE> extends BaseT
|
|||
try {
|
||||
URI url = url(request);
|
||||
if (url != null) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, url.getHost(), null, url.getPort());
|
||||
netPeerAttributes.setNetPeer(span, url.getHost(), null, url.getPort());
|
||||
span.setAttribute(SemanticAttributes.HTTP_URL, url.toString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
|
|||
public abstract Context getServerContext(STORAGE storage);
|
||||
|
||||
protected void onConnection(Span span, CONNECTION connection) {
|
||||
// TODO: use NetPeerAttributes here
|
||||
span.setAttribute(SemanticAttributes.NET_PEER_IP, peerHostIP(connection));
|
||||
Integer port = peerPort(connection);
|
||||
// Negative or Zero ports might represent an unset/null value for an int type. Skip setting.
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.api.tracer.utils;
|
||||
package io.opentelemetry.instrumentation.api.tracer.net;
|
||||
|
||||
import io.opentelemetry.api.common.AttributeKey;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.AttributeSetter;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -16,17 +16,22 @@ import java.util.Collections;
|
|||
import java.util.Map;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public final class NetPeerUtils {
|
||||
public final class NetPeerAttributes {
|
||||
|
||||
public static final NetPeerUtils INSTANCE = new NetPeerUtils(Config.get());
|
||||
// TODO: this should only be used by the javaagent; move to javaagent-api after removing all
|
||||
// library usages
|
||||
public static final NetPeerAttributes INSTANCE =
|
||||
new NetPeerAttributes(
|
||||
Config.get().getMapProperty("otel.instrumentation.common.peer-service-mapping"));
|
||||
|
||||
private final Map<String, String> peerServiceMapping;
|
||||
|
||||
// visible for testing
|
||||
NetPeerUtils(Config config) {
|
||||
this.peerServiceMapping =
|
||||
Collections.unmodifiableMap(
|
||||
config.getMapProperty("otel.instrumentation.common.peer-service-mapping"));
|
||||
public NetPeerAttributes() {
|
||||
this(Collections.emptyMap());
|
||||
}
|
||||
|
||||
public NetPeerAttributes(Map<String, String> peerServiceMapping) {
|
||||
this.peerServiceMapping = peerServiceMapping;
|
||||
}
|
||||
|
||||
public void setNetPeer(Span span, @Nullable InetSocketAddress remoteConnection) {
|
||||
|
|
@ -37,7 +42,7 @@ public final class NetPeerUtils {
|
|||
setNetPeer(span::setAttribute, remoteConnection);
|
||||
}
|
||||
|
||||
public void setNetPeer(SpanAttributeSetter span, @Nullable InetSocketAddress remoteConnection) {
|
||||
public void setNetPeer(AttributeSetter span, @Nullable InetSocketAddress remoteConnection) {
|
||||
if (remoteConnection != null) {
|
||||
InetAddress remoteAddress = remoteConnection.getAddress();
|
||||
if (remoteAddress != null) {
|
||||
|
|
@ -58,16 +63,6 @@ public final class NetPeerUtils {
|
|||
span::setAttribute, remoteAddress.getHostName(), remoteAddress.getHostAddress(), port);
|
||||
}
|
||||
|
||||
public void setNetPeer(Span span, String nameOrIp, int port) {
|
||||
try {
|
||||
InetSocketAddress address = new InetSocketAddress(nameOrIp, port);
|
||||
setNetPeer(span, address);
|
||||
} catch (IllegalArgumentException iae) {
|
||||
// can't create address, try setting directly
|
||||
setNetPeer(span::setAttribute, nameOrIp, null, port);
|
||||
}
|
||||
}
|
||||
|
||||
public void setNetPeer(Span span, String peerName, String peerIp) {
|
||||
setNetPeer(span::setAttribute, peerName, peerIp, -1);
|
||||
}
|
||||
|
|
@ -77,7 +72,7 @@ public final class NetPeerUtils {
|
|||
}
|
||||
|
||||
public void setNetPeer(
|
||||
SpanAttributeSetter span, @Nullable String peerName, @Nullable String peerIp, int port) {
|
||||
AttributeSetter span, @Nullable String peerName, @Nullable String peerIp, int port) {
|
||||
if (peerName != null && !peerName.equals(peerIp)) {
|
||||
span.setAttribute(SemanticAttributes.NET_PEER_NAME, peerName);
|
||||
}
|
||||
|
|
@ -104,12 +99,4 @@ public final class NetPeerUtils {
|
|||
|
||||
return peerServiceMapping.get(endpoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* This helper interface allows setting attributes on both {@link Span} and {@link SpanBuilder}.
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface SpanAttributeSetter {
|
||||
<T> void setAttribute(AttributeKey<T> key, T value);
|
||||
}
|
||||
}
|
||||
|
|
@ -16,9 +16,6 @@ class BaseTracerTest extends Specification {
|
|||
@Shared
|
||||
def tracer = newTracer()
|
||||
|
||||
@Shared
|
||||
def resolvedAddress = new InetSocketAddress("github.com", 999)
|
||||
|
||||
def span = Mock(Span)
|
||||
|
||||
@Shared
|
||||
|
|
|
|||
|
|
@ -7,23 +7,12 @@ package io.opentelemetry.instrumentation.api.tracer
|
|||
|
||||
import io.opentelemetry.api.trace.Span
|
||||
import io.opentelemetry.context.propagation.TextMapSetter
|
||||
import io.opentelemetry.instrumentation.api.config.Config
|
||||
import io.opentelemetry.instrumentation.api.config.ConfigBuilder
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
|
||||
import spock.lang.Shared
|
||||
|
||||
class HttpClientTracerTest extends BaseTracerTest {
|
||||
|
||||
def setupSpec() {
|
||||
Config.INSTANCE = new ConfigBuilder().readProperties([
|
||||
"otel.instrumentation.common.peer-service-mapping": "1.2.3.4=catservice,dogs.com=dogsservice"
|
||||
]).build()
|
||||
}
|
||||
|
||||
def cleanupSpec() {
|
||||
Config.INSTANCE = null
|
||||
}
|
||||
|
||||
@Shared
|
||||
def testUrl = new URI("http://myhost:123/somepath")
|
||||
|
||||
|
|
@ -162,7 +151,10 @@ class HttpClientTracerTest extends BaseTracerTest {
|
|||
|
||||
@Override
|
||||
def newTracer() {
|
||||
return new HttpClientTracer<Map, Map, Map>() {
|
||||
def netPeerAttributes = new NetPeerAttributes([
|
||||
"1.2.3.4": "catservice", "dogs.com": "dogsservice"
|
||||
])
|
||||
return new HttpClientTracer<Map, Map, Map>(netPeerAttributes) {
|
||||
|
||||
@Override
|
||||
protected String method(Map m) {
|
||||
|
|
|
|||
|
|
@ -3,18 +3,23 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.api.tracer.utils
|
||||
package io.opentelemetry.instrumentation.api.tracer.net
|
||||
|
||||
import io.opentelemetry.instrumentation.api.config.Config
|
||||
import io.opentelemetry.instrumentation.api.config.ConfigBuilder
|
||||
import io.opentelemetry.instrumentation.api.tracer.BaseTracerTest
|
||||
import io.opentelemetry.api.trace.Span
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes
|
||||
import spock.lang.Shared
|
||||
import spock.lang.Specification
|
||||
|
||||
class NetPeerUtilsTest extends BaseTracerTest {
|
||||
class NetPeerAttributesTest extends Specification {
|
||||
|
||||
@Shared
|
||||
def resolvedAddress = new InetSocketAddress("github.com", 999)
|
||||
|
||||
def span = Mock(Span)
|
||||
|
||||
def "test setAttributes"() {
|
||||
setup:
|
||||
def utils = new NetPeerUtils(Config.get())
|
||||
def utils = new NetPeerAttributes([:])
|
||||
|
||||
when:
|
||||
utils.setNetPeer(span, connection)
|
||||
|
|
@ -39,10 +44,9 @@ class NetPeerUtilsTest extends BaseTracerTest {
|
|||
|
||||
def "test setAttributes with mapped peer"() {
|
||||
setup:
|
||||
def config = new ConfigBuilder().readProperties([
|
||||
"otel.instrumentation.common.peer-service-mapping": "1.2.3.4=catservice,dogs.com=dogsservice"
|
||||
]).build()
|
||||
def utils = new NetPeerUtils(config)
|
||||
def utils = new NetPeerAttributes([
|
||||
"1.2.3.4": "catservice", "dogs.com": "dogsservice"
|
||||
])
|
||||
|
||||
when:
|
||||
utils.setNetPeer(span, connection)
|
||||
|
|
@ -12,6 +12,7 @@ import akka.http.scaladsl.model.HttpRequest;
|
|||
import akka.http.scaladsl.model.HttpResponse;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.javaagent.instrumentation.akkahttp.AkkaHttpClientInstrumentationModule.AkkaHttpHeaders;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -20,6 +21,10 @@ public class AkkaHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, AkkaHttpHeaders, HttpResponse> {
|
||||
private static final AkkaHttpClientTracer TRACER = new AkkaHttpClientTracer();
|
||||
|
||||
private AkkaHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static AkkaHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.opentelemetry.api.trace.SpanBuilder;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.RpcServerTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import org.apache.dubbo.rpc.Result;
|
||||
import org.apache.dubbo.rpc.RpcContext;
|
||||
|
|
@ -30,7 +30,7 @@ class DubboTracer extends RpcServerTracer<RpcInvocation> {
|
|||
spanBuilder(parentContext, DubboHelper.getSpanName(interfaceName, methodName), SERVER)
|
||||
.setAttribute(SemanticAttributes.RPC_SYSTEM, "dubbo");
|
||||
DubboHelper.prepareSpan(spanBuilder, interfaceName, methodName);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(spanBuilder, RpcContext.getContext().getRemoteAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(spanBuilder, RpcContext.getContext().getRemoteAddress());
|
||||
return withServerSpan(Context.current(), spanBuilder.startSpan());
|
||||
}
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ class DubboTracer extends RpcServerTracer<RpcInvocation> {
|
|||
spanBuilder(parentContext, DubboHelper.getSpanName(interfaceName, methodName), CLIENT)
|
||||
.setAttribute(SemanticAttributes.RPC_SYSTEM, "dubbo");
|
||||
DubboHelper.prepareSpan(spanBuilder, interfaceName, methodName);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(spanBuilder, RpcContext.getContext().getRemoteAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(spanBuilder, RpcContext.getContext().getRemoteAddress());
|
||||
return withClientSpan(parentContext, spanBuilder.startSpan());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.apache.http.Header;
|
||||
|
|
@ -28,6 +29,10 @@ public class ApacheHttpAsyncClientTracer
|
|||
|
||||
private static final ApacheHttpAsyncClientTracer TRACER = new ApacheHttpAsyncClientTracer();
|
||||
|
||||
private ApacheHttpAsyncClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ApacheHttpAsyncClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v2_0;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.apache.commons.httpclient.Header;
|
||||
|
|
@ -18,6 +19,10 @@ import org.apache.commons.httpclient.URIException;
|
|||
public class CommonsHttpClientTracer extends HttpClientTracer<HttpMethod, HttpMethod, HttpMethod> {
|
||||
private static final CommonsHttpClientTracer TRACER = new CommonsHttpClientTracer();
|
||||
|
||||
private CommonsHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static CommonsHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.apachehttpclient.v4_0.H
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpHost;
|
||||
|
|
@ -24,6 +25,10 @@ public class ApacheHttpClientTracer
|
|||
|
||||
private static final ApacheHttpClientTracer TRACER = new ApacheHttpClientTracer();
|
||||
|
||||
private ApacheHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ApacheHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.apachehttpclient.v5_0;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.apache.hc.core5.http.ClassicHttpRequest;
|
||||
|
|
@ -24,6 +25,10 @@ public class ApacheHttpClientTracer
|
|||
|
||||
private static final ApacheHttpClientTracer TRACER = new ApacheHttpClientTracer();
|
||||
|
||||
private ApacheHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ApacheHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.linecorp.armeria.common.logging.RequestLog;
|
|||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
|
@ -21,7 +22,7 @@ final class ArmeriaClientTracer
|
|||
extends HttpClientTracer<ClientRequestContext, ClientRequestContext, RequestLog> {
|
||||
|
||||
ArmeriaClientTracer(OpenTelemetry openTelemetry) {
|
||||
super(openTelemetry);
|
||||
super(openTelemetry, new NetPeerAttributes());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -78,6 +79,10 @@ final class ArmeriaClientTracer
|
|||
return "io.opentelemetry.armeria-1.3";
|
||||
}
|
||||
|
||||
NetPeerAttributes getNetPeerAttributes() {
|
||||
return netPeerAttributes;
|
||||
}
|
||||
|
||||
private static class ArmeriaSetter implements TextMapSetter<ClientRequestContext> {
|
||||
|
||||
private static final ArmeriaSetter INSTANCE = new ArmeriaSetter();
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public final class ArmeriaTracing {
|
|||
private final ArmeriaClientTracer clientTracer;
|
||||
private final ArmeriaServerTracer serverTracer;
|
||||
|
||||
private ArmeriaTracing(OpenTelemetry openTelemetry) {
|
||||
ArmeriaTracing(OpenTelemetry openTelemetry) {
|
||||
clientTracer = new ArmeriaClientTracer(openTelemetry);
|
||||
serverTracer = new ArmeriaServerTracer(openTelemetry);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import com.linecorp.armeria.common.logging.RequestLogProperty;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/** Decorates an {@link HttpClient} to trace outbound {@link HttpResponse}s. */
|
||||
|
|
@ -41,7 +40,7 @@ final class OpenTelemetryClient extends SimpleDecoratingHttpClient {
|
|||
.whenComplete()
|
||||
.thenAccept(
|
||||
log -> {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, ctx.remoteAddress());
|
||||
clientTracer.getNetPeerAttributes().setNetPeer(span, ctx.remoteAddress());
|
||||
|
||||
long requestEndTimeNanos = requestStartTimeNanos + log.responseDurationNanos();
|
||||
if (log.responseCause() != null) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import com.ning.http.client.Request;
|
|||
import com.ning.http.client.Response;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
|
|
@ -16,6 +17,10 @@ public class AsyncHttpClientTracer extends HttpClientTracer<Request, Request, Re
|
|||
|
||||
private static final AsyncHttpClientTracer TRACER = new AsyncHttpClientTracer();
|
||||
|
||||
private AsyncHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static AsyncHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.asynchttpclient.Request;
|
||||
|
|
@ -16,6 +17,10 @@ public class AsyncHttpClientTracer extends HttpClientTracer<Request, Request, Re
|
|||
|
||||
private static final AsyncHttpClientTracer TRACER = new AsyncHttpClientTracer();
|
||||
|
||||
private AsyncHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static AsyncHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
|
@ -37,7 +38,7 @@ final class AwsSdkClientTracer extends HttpClientTracer<Request<?>, Request<?>,
|
|||
private final boolean captureExperimentalSpanAttributes;
|
||||
|
||||
AwsSdkClientTracer(OpenTelemetry openTelemetry, boolean captureExperimentalSpanAttributes) {
|
||||
super(openTelemetry);
|
||||
super(openTelemetry, new NetPeerAttributes());
|
||||
this.captureExperimentalSpanAttributes = captureExperimentalSpanAttributes;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
|
||||
import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute;
|
||||
|
|
@ -24,7 +25,7 @@ final class AwsSdkHttpClientTracer
|
|||
extends HttpClientTracer<SdkHttpRequest, SdkHttpRequest.Builder, SdkHttpResponse> {
|
||||
|
||||
AwsSdkHttpClientTracer(OpenTelemetry openTelemetry) {
|
||||
super(openTelemetry);
|
||||
super(openTelemetry, new NetPeerAttributes());
|
||||
}
|
||||
|
||||
public Context startSpan(Context parentContext, ExecutionAttributes attributes) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.instrumentation.api.db.SqlStatementInfo;
|
||||
import io.opentelemetry.instrumentation.api.db.SqlStatementSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -24,6 +24,10 @@ public class CassandraDatabaseClientTracer
|
|||
extends DatabaseClientTracer<Session, String, SqlStatementInfo> {
|
||||
private static final CassandraDatabaseClientTracer TRACER = new CassandraDatabaseClientTracer();
|
||||
|
||||
private CassandraDatabaseClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static CassandraDatabaseClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -104,7 +108,7 @@ public class CassandraDatabaseClientTracer
|
|||
public void end(Context context, ExecutionInfo executionInfo) {
|
||||
Span span = Span.fromContext(context);
|
||||
Host host = executionInfo.getQueriedHost();
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, host.getSocketAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, host.getSocketAddress());
|
||||
end(context);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.instrumentation.api.db.SqlStatementInfo;
|
||||
import io.opentelemetry.instrumentation.api.db.SqlStatementSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -31,6 +31,10 @@ public class CassandraDatabaseClientTracer
|
|||
|
||||
private static final CassandraDatabaseClientTracer TRACER = new CassandraDatabaseClientTracer();
|
||||
|
||||
private CassandraDatabaseClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static CassandraDatabaseClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -111,7 +115,7 @@ public class CassandraDatabaseClientTracer
|
|||
if (coordinator != null) {
|
||||
SocketAddress socketAddress = coordinator.getEndPoint().resolve();
|
||||
if (socketAddress instanceof InetSocketAddress) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, ((InetSocketAddress) socketAddress));
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, ((InetSocketAddress) socketAddress));
|
||||
}
|
||||
if (coordinator.getDatacenter() != null) {
|
||||
span.setAttribute(
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;
|
||||
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -13,6 +14,10 @@ import java.net.InetSocketAddress;
|
|||
public class CouchbaseClientTracer extends DatabaseClientTracer<Void, Method, Void> {
|
||||
private static final CouchbaseClientTracer TRACER = new CouchbaseClientTracer();
|
||||
|
||||
private CouchbaseClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static CouchbaseClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
|
|||
|
||||
import com.couchbase.client.core.message.CouchbaseRequest;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.javaagent.instrumentation.api.ContextStore;
|
||||
import io.opentelemetry.javaagent.instrumentation.api.InstrumentationContext;
|
||||
import io.opentelemetry.javaagent.tooling.TypeInstrumentation;
|
||||
|
|
@ -68,7 +68,7 @@ public class CouchbaseNetworkInstrumentation implements TypeInstrumentation {
|
|||
|
||||
Span span = contextStore.get(request);
|
||||
if (span != null) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, remoteHostname, null);
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, remoteHostname, null);
|
||||
|
||||
if (remoteSocket != null) {
|
||||
int splitIndex = remoteSocket.lastIndexOf(":");
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.elasticsearch.rest;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import org.elasticsearch.client.Response;
|
||||
|
|
@ -16,6 +16,10 @@ import org.elasticsearch.client.Response;
|
|||
public class ElasticsearchRestClientTracer extends DatabaseClientTracer<Void, String, String> {
|
||||
private static final ElasticsearchRestClientTracer TRACER = new ElasticsearchRestClientTracer();
|
||||
|
||||
private ElasticsearchRestClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ElasticsearchRestClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -23,7 +27,7 @@ public class ElasticsearchRestClientTracer extends DatabaseClientTracer<Void, St
|
|||
public void onResponse(Context context, Response response) {
|
||||
if (response != null && response.getHost() != null) {
|
||||
Span span = Span.fromContext(context);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, response.getHost().getHostName(), null);
|
||||
netPeerAttributes.setNetPeer(span, response.getHost().getHostName(), null);
|
||||
span.setAttribute(SemanticAttributes.NET_PEER_PORT, (long) response.getHost().getPort());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.elasticsearch.transport
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
|
|
@ -73,7 +73,7 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
Span span = Span.fromContext(context);
|
||||
|
||||
if (response.remoteAddress() != null) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(
|
||||
span, response.remoteAddress().getHost(), response.remoteAddress().getAddress());
|
||||
span.setAttribute(
|
||||
SemanticAttributes.NET_PEER_PORT, (long) response.remoteAddress().getPort());
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.elasticsearch.transport
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
|
|
@ -74,7 +74,7 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
Span span = Span.fromContext(context);
|
||||
|
||||
if (response.remoteAddress() != null) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(
|
||||
span, response.remoteAddress().getHost(), response.remoteAddress().getAddress());
|
||||
span.setAttribute(
|
||||
SemanticAttributes.NET_PEER_PORT, (long) response.remoteAddress().getPort());
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.elasticsearch.transport
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ActionRequest;
|
||||
|
|
@ -77,7 +77,7 @@ public class TransportActionListener<T extends ActionResponse> implements Action
|
|||
Span span = Span.fromContext(context);
|
||||
|
||||
if (response.remoteAddress() != null) {
|
||||
NetPeerUtils.INSTANCE.setNetPeer(
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(
|
||||
span,
|
||||
response.remoteAddress().address().getHostName(),
|
||||
response.remoteAddress().getAddress());
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
public class ElasticsearchTransportClientTracer extends DatabaseClientTracer<Void, Object, String> {
|
||||
|
|
@ -21,6 +22,10 @@ public class ElasticsearchTransportClientTracer extends DatabaseClientTracer<Voi
|
|||
private static final ElasticsearchTransportClientTracer TRACER =
|
||||
new ElasticsearchTransportClientTracer();
|
||||
|
||||
private ElasticsearchTransportClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ElasticsearchTransportClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.instrumentation.api.db.SqlStatementInfo;
|
||||
import io.opentelemetry.instrumentation.api.db.SqlStatementSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import org.apache.geode.cache.Region;
|
||||
|
|
@ -19,6 +20,10 @@ import org.apache.geode.cache.Region;
|
|||
public class GeodeTracer extends DatabaseClientTracer<Region<?, ?>, String, SqlStatementInfo> {
|
||||
private static final GeodeTracer TRACER = new GeodeTracer();
|
||||
|
||||
private GeodeTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static GeodeTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.google.api.client.http.HttpResponse;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
|
|
@ -20,6 +21,10 @@ public class GoogleHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, HttpHeaders, HttpResponse> {
|
||||
private static final GoogleHttpClientTracer TRACER = new GoogleHttpClientTracer();
|
||||
|
||||
private GoogleHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static GoogleHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import io.opentelemetry.api.common.Attributes;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketAddress;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
|
@ -56,7 +56,7 @@ final class TracingClientInterceptor implements ClientInterceptor {
|
|||
SocketAddress address = result.getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR);
|
||||
if (address instanceof InetSocketAddress) {
|
||||
InetSocketAddress inetSocketAddress = (InetSocketAddress) address;
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, inetSocketAddress);
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, inetSocketAddress);
|
||||
}
|
||||
|
||||
return new TracingClientCall<>(result, span, context);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.httpurlconnection.Heade
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -19,6 +20,10 @@ public class HttpUrlConnectionTracer
|
|||
|
||||
private static final HttpUrlConnectionTracer TRACER = new HttpUrlConnectionTracer();
|
||||
|
||||
private HttpUrlConnectionTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static HttpUrlConnectionTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient.Version;
|
||||
|
|
@ -24,6 +25,10 @@ public class JdkHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, HttpRequest, HttpResponse<?>> {
|
||||
private static final JdkHttpClientTracer TRACER = new JdkHttpClientTracer();
|
||||
|
||||
private JdkHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JdkHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,12 +11,17 @@ import com.sun.jersey.api.client.ClientRequest;
|
|||
import com.sun.jersey.api.client.ClientResponse;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
|
||||
public class JaxRsClientV1Tracer
|
||||
extends HttpClientTracer<ClientRequest, ClientRequest, ClientResponse> {
|
||||
private static final JaxRsClientV1Tracer TRACER = new JaxRsClientV1Tracer();
|
||||
|
||||
private JaxRsClientV1Tracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JaxRsClientV1Tracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0.Inject
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import javax.ws.rs.client.ClientRequestContext;
|
||||
import javax.ws.rs.client.ClientResponseContext;
|
||||
|
|
@ -17,6 +18,10 @@ public class JaxRsClientTracer
|
|||
extends HttpClientTracer<ClientRequestContext, ClientRequestContext, ClientResponseContext> {
|
||||
private static final JaxRsClientTracer TRACER = new JaxRsClientTracer();
|
||||
|
||||
private JaxRsClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JaxRsClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.instrumentation.jaxrsclient.v2_0.Restea
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import javax.ws.rs.core.Response;
|
||||
import org.jboss.resteasy.client.jaxrs.internal.ClientInvocation;
|
||||
|
|
@ -17,6 +18,10 @@ public class ResteasyClientTracer
|
|||
extends HttpClientTracer<ClientInvocation, ClientInvocation, Response> {
|
||||
private static final ResteasyClientTracer TRACER = new ResteasyClientTracer();
|
||||
|
||||
private ResteasyClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static ResteasyClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.instrumentation.api.db.SqlStatementInfo;
|
||||
import io.opentelemetry.instrumentation.api.db.SqlStatementSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.sql.Connection;
|
||||
|
|
@ -23,6 +24,10 @@ import java.sql.Statement;
|
|||
public class JdbcTracer extends DatabaseClientTracer<DbInfo, String, SqlStatementInfo> {
|
||||
private static final JdbcTracer TRACER = new JdbcTracer();
|
||||
|
||||
private JdbcTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JdbcTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.jedis.v1_4;
|
|||
|
||||
import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.javaagent.instrumentation.jedis.v1_4.JedisClientTracer.CommandWithArgs;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -18,6 +19,10 @@ import redis.clients.jedis.Protocol.Command;
|
|||
public class JedisClientTracer extends DatabaseClientTracer<Connection, CommandWithArgs, String> {
|
||||
private static final JedisClientTracer TRACER = new JedisClientTracer();
|
||||
|
||||
private JedisClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JedisClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.jedis.v3_0;
|
|||
|
||||
import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.javaagent.instrumentation.jedis.v3_0.JedisClientTracer.CommandWithArgs;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -20,6 +21,10 @@ import redis.clients.jedis.commands.ProtocolCommand;
|
|||
public class JedisClientTracer extends DatabaseClientTracer<Connection, CommandWithArgs, String> {
|
||||
private static final JedisClientTracer TRACER = new JedisClientTracer();
|
||||
|
||||
private JedisClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static JedisClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.instrumentation.khttp.KHttpHeadersInjec
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Map;
|
||||
|
|
@ -17,6 +18,10 @@ import khttp.responses.Response;
|
|||
public class KHttpTracer extends HttpClientTracer<RequestWrapper, Map<String, String>, Response> {
|
||||
private static final KHttpTracer TRACER = new KHttpTracer();
|
||||
|
||||
private KHttpTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static KHttpTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
|
|
@ -29,6 +30,10 @@ public class KubernetesClientTracer
|
|||
|
||||
private static final KubernetesClientTracer TRACER = new KubernetesClientTracer();
|
||||
|
||||
private KubernetesClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static KubernetesClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.lettuce.v4_0;
|
|||
import com.lambdaworks.redis.RedisURI;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -15,6 +16,10 @@ import java.net.InetSocketAddress;
|
|||
public abstract class LettuceAbstractDatabaseClientTracer<STATEMENT>
|
||||
extends DatabaseClientTracer<RedisURI, STATEMENT, String> {
|
||||
|
||||
protected LettuceAbstractDatabaseClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String spanName(RedisURI connection, STATEMENT statement, String operation) {
|
||||
return operation;
|
||||
|
|
|
|||
|
|
@ -8,12 +8,17 @@ package io.opentelemetry.javaagent.instrumentation.lettuce.v5_0;
|
|||
import io.lettuce.core.RedisURI;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
public abstract class LettuceAbstractDatabaseClientTracer<STATEMENT>
|
||||
extends DatabaseClientTracer<RedisURI, STATEMENT, String> {
|
||||
protected LettuceAbstractDatabaseClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInstrumentationName() {
|
||||
return "io.opentelemetry.javaagent.lettuce-5.0";
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ import io.opentelemetry.api.trace.SpanKind;
|
|||
import io.opentelemetry.api.trace.StatusCode;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils.SpanAttributeSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.AttributeSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
|
|
@ -269,9 +269,9 @@ final class OpenTelemetryTracing implements Tracing {
|
|||
}
|
||||
}
|
||||
|
||||
private static void fillEndpoint(SpanAttributeSetter span, OpenTelemetryEndpoint endpoint) {
|
||||
private static void fillEndpoint(AttributeSetter span, OpenTelemetryEndpoint endpoint) {
|
||||
span.setAttribute(SemanticAttributes.NET_TRANSPORT, "IP.TCP");
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, endpoint.name, endpoint.ip, endpoint.port);
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, endpoint.name, endpoint.ip, endpoint.port);
|
||||
|
||||
StringBuilder redisUrl =
|
||||
new StringBuilder("redis://").append(endpoint.name != null ? endpoint.name : endpoint.ip);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.mongodb.connection.ConnectionDescription;
|
|||
import com.mongodb.event.CommandStartedEvent;
|
||||
import io.opentelemetry.api.trace.SpanBuilder;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.io.StringWriter;
|
||||
|
|
@ -41,6 +42,7 @@ public class MongoClientTracer
|
|||
}
|
||||
|
||||
public MongoClientTracer(int maxNormalizedQueryLength) {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
this.maxNormalizedQueryLength = maxNormalizedQueryLength;
|
||||
this.jsonWriterSettings = createJsonWriterSettings(maxNormalizedQueryLength);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -27,6 +27,10 @@ public class NettyHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, HttpHeaders, HttpResponse> {
|
||||
private static final NettyHttpClientTracer TRACER = new NettyHttpClientTracer();
|
||||
|
||||
private NettyHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static NettyHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -34,7 +38,8 @@ public class NettyHttpClientTracer
|
|||
public Context startSpan(Context parentContext, ChannelHandlerContext ctx, HttpRequest request) {
|
||||
Span span = spanBuilder(parentContext, spanNameForRequest(request), CLIENT).startSpan();
|
||||
onRequest(span, request);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, (InetSocketAddress) ctx.getChannel().getRemoteAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(
|
||||
span, (InetSocketAddress) ctx.getChannel().getRemoteAddress());
|
||||
|
||||
Context context = withClientSpan(parentContext, span);
|
||||
inject(context, request.headers(), SETTER);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -27,6 +27,10 @@ public class NettyHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, HttpHeaders, HttpResponse> {
|
||||
private static final NettyHttpClientTracer TRACER = new NettyHttpClientTracer();
|
||||
|
||||
private NettyHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static NettyHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -34,7 +38,7 @@ public class NettyHttpClientTracer
|
|||
public Context startSpan(Context parentContext, ChannelHandlerContext ctx, HttpRequest request) {
|
||||
Span span = spanBuilder(parentContext, spanNameForRequest(request), CLIENT).startSpan();
|
||||
onRequest(span, request);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, (InetSocketAddress) ctx.channel().remoteAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, (InetSocketAddress) ctx.channel().remoteAddress());
|
||||
|
||||
Context context = withClientSpan(parentContext, span);
|
||||
inject(context, request.headers(), SETTER);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
|
@ -27,6 +27,10 @@ public class NettyHttpClientTracer
|
|||
extends HttpClientTracer<HttpRequest, HttpHeaders, HttpResponse> {
|
||||
private static final NettyHttpClientTracer TRACER = new NettyHttpClientTracer();
|
||||
|
||||
private NettyHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static NettyHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
@ -34,7 +38,7 @@ public class NettyHttpClientTracer
|
|||
public Context startSpan(Context parentContext, ChannelHandlerContext ctx, HttpRequest request) {
|
||||
Span span = spanBuilder(parentContext, spanNameForRequest(request), CLIENT).startSpan();
|
||||
onRequest(span, request);
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, (InetSocketAddress) ctx.channel().remoteAddress());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, (InetSocketAddress) ctx.channel().remoteAddress());
|
||||
|
||||
Context context = withClientSpan(parentContext, span);
|
||||
inject(context, request.headers(), SETTER);
|
||||
|
|
|
|||
|
|
@ -11,12 +11,17 @@ import com.squareup.okhttp.Request;
|
|||
import com.squareup.okhttp.Response;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
public class OkHttpClientTracer extends HttpClientTracer<Request, Request.Builder, Response> {
|
||||
private static final OkHttpClientTracer TRACER = new OkHttpClientTracer();
|
||||
|
||||
private OkHttpClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static OkHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.instrumentation.okhttp.v3_0.RequestBuilderInjectA
|
|||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
|
@ -17,7 +18,7 @@ import okhttp3.Response;
|
|||
final class OkHttpClientTracer extends HttpClientTracer<Request, Request.Builder, Response> {
|
||||
|
||||
OkHttpClientTracer(OpenTelemetry openTelemetry) {
|
||||
super(openTelemetry);
|
||||
super(openTelemetry, new NetPeerAttributes());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public final class OkHttpTracing {
|
|||
|
||||
private final OkHttpClientTracer tracer;
|
||||
|
||||
private OkHttpTracing(OpenTelemetry openTelemetry) {
|
||||
OkHttpTracing(OpenTelemetry openTelemetry) {
|
||||
this.tracer = new OkHttpClientTracer(openTelemetry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import static io.opentelemetry.javaagent.instrumentation.playws.HeadersInjectAda
|
|||
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import play.shaded.ahc.io.netty.handler.codec.http.HttpHeaders;
|
||||
|
|
@ -18,6 +19,10 @@ import play.shaded.ahc.org.asynchttpclient.Response;
|
|||
public class PlayWsClientTracer extends HttpClientTracer<Request, HttpHeaders, Response> {
|
||||
private static final PlayWsClientTracer TRACER = new PlayWsClientTracer();
|
||||
|
||||
private PlayWsClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static PlayWsClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import io.opentelemetry.api.trace.SpanKind;
|
|||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.BaseTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.utils.NetPeerUtils;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
|
@ -47,7 +47,7 @@ public class RabbitTracer extends BaseTracer {
|
|||
.setAttribute(SemanticAttributes.MESSAGING_SYSTEM, "rabbitmq")
|
||||
.setAttribute(SemanticAttributes.MESSAGING_DESTINATION_KIND, "queue");
|
||||
|
||||
NetPeerUtils.INSTANCE.setNetPeer(span, connection.getAddress(), connection.getPort());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(span, connection.getAddress(), connection.getPort());
|
||||
|
||||
return parentContext.with(span.startSpan());
|
||||
}
|
||||
|
|
@ -73,7 +73,8 @@ public class RabbitTracer extends BaseTracer {
|
|||
SemanticAttributes.MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,
|
||||
(long) response.getBody().length);
|
||||
}
|
||||
NetPeerUtils.INSTANCE.setNetPeer(spanBuilder, connection.getAddress(), connection.getPort());
|
||||
NetPeerAttributes.INSTANCE.setNetPeer(
|
||||
spanBuilder, connection.getAddress(), connection.getPort());
|
||||
onGet(spanBuilder, queue);
|
||||
|
||||
// TODO: withClientSpan()?
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.javaagent.instrumentation.rediscala;
|
||||
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
import redis.RedisCommand;
|
||||
|
|
@ -15,6 +16,10 @@ public class RediscalaClientTracer
|
|||
|
||||
private static final RediscalaClientTracer TRACER = new RediscalaClientTracer();
|
||||
|
||||
private RediscalaClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static RediscalaClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.netty.buffer.ByteBuf;
|
|||
import io.netty.channel.Channel;
|
||||
import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -27,6 +28,10 @@ public class RedissonClientTracer
|
|||
|
||||
private static final RedissonClientTracer TRACER = new RedissonClientTracer();
|
||||
|
||||
private RedissonClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static RedissonClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ public final class RestTemplateInterceptor implements ClientHttpRequestIntercept
|
|||
|
||||
private final RestTemplateTracer tracer;
|
||||
|
||||
// TODO: create a SpringWebTracing class that follows the new library instrumentation pattern
|
||||
public RestTemplateInterceptor(OpenTelemetry openTelemetry) {
|
||||
this.tracer = new RestTemplateTracer(openTelemetry);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import static io.opentelemetry.instrumentation.spring.httpclients.HttpHeadersInj
|
|||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
|
|
@ -19,7 +20,7 @@ import org.springframework.http.client.ClientHttpResponse;
|
|||
|
||||
class RestTemplateTracer extends HttpClientTracer<HttpRequest, HttpHeaders, ClientHttpResponse> {
|
||||
RestTemplateTracer(OpenTelemetry openTelemetry) {
|
||||
super(openTelemetry);
|
||||
super(openTelemetry, new NetPeerAttributes());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.context.Context;
|
|||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.instrumentation.api.config.Config;
|
||||
import io.opentelemetry.instrumentation.api.tracer.HttpClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.invoke.MethodType;
|
||||
|
|
@ -25,6 +26,10 @@ public class SpringWebfluxHttpClientTracer
|
|||
|
||||
private static final SpringWebfluxHttpClientTracer TRACER = new SpringWebfluxHttpClientTracer();
|
||||
|
||||
private SpringWebfluxHttpClientTracer() {
|
||||
super(new NetPeerAttributes());
|
||||
}
|
||||
|
||||
public static SpringWebfluxHttpClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.javaagent.instrumentation.spymemcached;
|
||||
|
||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||
import io.opentelemetry.instrumentation.api.tracer.net.NetPeerAttributes;
|
||||
import java.net.InetSocketAddress;
|
||||
import net.spy.memcached.MemcachedConnection;
|
||||
|
||||
|
|
@ -13,6 +14,10 @@ public class MemcacheClientTracer
|
|||
extends DatabaseClientTracer<MemcachedConnection, String, String> {
|
||||
private static final MemcacheClientTracer TRACER = new MemcacheClientTracer();
|
||||
|
||||
private MemcacheClientTracer() {
|
||||
super(NetPeerAttributes.INSTANCE);
|
||||
}
|
||||
|
||||
public static MemcacheClientTracer tracer() {
|
||||
return TRACER;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue