diff --git a/gradle/enforcement/checkstyle.xml b/gradle/enforcement/checkstyle.xml index c4026123ba..d96293ba34 100644 --- a/gradle/enforcement/checkstyle.xml +++ b/gradle/enforcement/checkstyle.xml @@ -270,9 +270,7 @@ PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF, RECORD_COMPONENT_DEF"/> - diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java index b31664fa09..c3d0f49144 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java @@ -64,7 +64,7 @@ public abstract class HttpClientTracer extends BaseT } public Span startSpan(REQUEST request, long startTimeNanos) { - return startSpan(request, spanNameForRequest(request), startTimeNanos); + return internalStartSpan(request, spanNameForRequest(request), startTimeNanos); } public Scope startScope(Span span, CARRIER carrier) { @@ -103,7 +103,7 @@ public abstract class HttpClientTracer extends BaseT * Returns a new client {@link Span} if there is no client {@link Span} in the current {@link * Context}, or an invalid {@link Span} otherwise. */ - private Span startSpan(REQUEST request, String name, long startTimeNanos) { + private Span internalStartSpan(REQUEST request, String name, long startTimeNanos) { Context context = Context.current(); Span clientSpan = context.get(CONTEXT_CLIENT_SPAN_KEY); diff --git a/instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamHandler.java b/instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamHandler.java index 1dbb6f03d2..3d76c9eb70 100644 --- a/instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamHandler.java +++ b/instrumentation/aws-lambda-1.0/library/src/main/java/io/opentelemetry/instrumentation/awslambda/v1_0/TracingRequestStreamHandler.java @@ -88,6 +88,11 @@ public abstract class TracingRequestStreamHandler implements RequestStreamHandle delegate.write(b, off, len); } + @Override + public void write(int b) throws IOException { + delegate.write(b); + } + @Override public void flush() throws IOException { delegate.flush(); @@ -99,10 +104,5 @@ public abstract class TracingRequestStreamHandler implements RequestStreamHandle tracer.end(span); OpenTelemetrySdk.getGlobalTracerManagement().forceFlush().join(1, TimeUnit.SECONDS); } - - @Override - public void write(int b) throws IOException { - delegate.write(b); - } } } diff --git a/instrumentation/cassandra/cassandra-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/TracingCqlSession.java b/instrumentation/cassandra/cassandra-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/TracingCqlSession.java index a689b5e086..aea19b1f6b 100644 --- a/instrumentation/cassandra/cassandra-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/TracingCqlSession.java +++ b/instrumentation/cassandra/cassandra-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/TracingCqlSession.java @@ -135,13 +135,6 @@ public class TracingCqlSession implements CqlSession { return session.getMetrics(); } - @Override - @Nullable - public ResultT execute( - @NonNull RequestT request, @NonNull GenericType resultType) { - return session.execute(request, resultType); - } - @Override @NonNull public CompletionStage closeFuture() { @@ -170,15 +163,21 @@ public class TracingCqlSession implements CqlSession { session.close(); } + @Override + @Nullable + public ResultT execute( + @NonNull RequestT request, @NonNull GenericType resultType) { + return session.execute(request, resultType); + } + @Override @NonNull - public ResultSet execute(@NonNull Statement statement) { - String query = getQuery(statement); + public ResultSet execute(@NonNull String query) { Span span = tracer().startSpan(session, query); try (Scope ignored = tracer().startScope(span)) { try { - ResultSet resultSet = session.execute(statement); + ResultSet resultSet = session.execute(query); tracer().onResponse(span, resultSet.getExecutionInfo()); return resultSet; } catch (RuntimeException e) { @@ -192,12 +191,13 @@ public class TracingCqlSession implements CqlSession { @Override @NonNull - public ResultSet execute(@NonNull String query) { + public ResultSet execute(@NonNull Statement statement) { + String query = getQuery(statement); Span span = tracer().startSpan(session, query); try (Scope ignored = tracer().startScope(span)) { try { - ResultSet resultSet = session.execute(query); + ResultSet resultSet = session.execute(statement); tracer().onResponse(span, resultSet.getExecutionInfo()); return resultSet; } catch (RuntimeException e) { diff --git a/instrumentation/kafka-clients-0.11/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/TracingList.java b/instrumentation/kafka-clients-0.11/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/TracingList.java index afbd014479..aa9e66bf50 100644 --- a/instrumentation/kafka-clients-0.11/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/TracingList.java +++ b/instrumentation/kafka-clients-0.11/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/TracingList.java @@ -48,11 +48,21 @@ public class TracingList extends TracingIterable implements List remove(int index) { + return delegate.remove(index); + } + @Override public boolean containsAll(Collection c) { return delegate.containsAll(c); @@ -94,16 +104,6 @@ public class TracingList extends TracingIterable implements List remove(int index) { - return delegate.remove(index); - } - @Override public int indexOf(Object o) { return delegate.indexOf(o); diff --git a/instrumentation/opentelemetry-api-beta/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/Bridging.java b/instrumentation/opentelemetry-api-beta/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/Bridging.java index 61670b986f..f717aab002 100644 --- a/instrumentation/opentelemetry-api-beta/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/Bridging.java +++ b/instrumentation/opentelemetry-api-beta/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/trace/Bridging.java @@ -44,17 +44,6 @@ public class Bridging { } } - public static io.opentelemetry.api.trace.Span toAgentOrNull(Span applicationSpan) { - if (!applicationSpan.getSpanContext().isValid()) { - // no need to wrap - return io.opentelemetry.api.trace.Span.getInvalid(); - } else if (applicationSpan instanceof ApplicationSpan) { - return ((ApplicationSpan) applicationSpan).getAgentSpan(); - } else { - return null; - } - } - public static SpanContext toApplication(io.opentelemetry.api.trace.SpanContext agentContext) { if (agentContext.isRemote()) { return SpanContext.createFromRemoteParent( @@ -71,6 +60,32 @@ public class Bridging { } } + private static TraceState toApplication(io.opentelemetry.api.trace.TraceState agentTraceState) { + TraceState.Builder applicationTraceState = TraceState.builder(); + agentTraceState.forEach(applicationTraceState::set); + return applicationTraceState.build(); + } + + public static io.opentelemetry.api.trace.Span toAgentOrNull(Span applicationSpan) { + if (!applicationSpan.getSpanContext().isValid()) { + // no need to wrap + return io.opentelemetry.api.trace.Span.getInvalid(); + } else if (applicationSpan instanceof ApplicationSpan) { + return ((ApplicationSpan) applicationSpan).getAgentSpan(); + } else { + return null; + } + } + + public static io.opentelemetry.api.trace.Span.Kind toAgentOrNull(Span.Kind applicationSpanKind) { + try { + return io.opentelemetry.api.trace.Span.Kind.valueOf(applicationSpanKind.name()); + } catch (IllegalArgumentException e) { + log.debug("unexpected span kind: {}", applicationSpanKind.name()); + return null; + } + } + public static io.opentelemetry.api.trace.SpanContext toAgent(SpanContext applicationContext) { if (applicationContext.isRemote()) { return io.opentelemetry.api.trace.SpanContext.createFromRemoteParent( @@ -150,21 +165,6 @@ public class Bridging { return agentCanonicalCode; } - public static io.opentelemetry.api.trace.Span.Kind toAgentOrNull(Span.Kind applicationSpanKind) { - try { - return io.opentelemetry.api.trace.Span.Kind.valueOf(applicationSpanKind.name()); - } catch (IllegalArgumentException e) { - log.debug("unexpected span kind: {}", applicationSpanKind.name()); - return null; - } - } - - private static TraceState toApplication(io.opentelemetry.api.trace.TraceState agentTraceState) { - TraceState.Builder applicationTraceState = TraceState.builder(); - agentTraceState.forEach(applicationTraceState::set); - return applicationTraceState.build(); - } - private static io.opentelemetry.api.trace.TraceState toAgent(TraceState applicationTraceState) { io.opentelemetry.api.trace.TraceState.Builder agentTraceState = io.opentelemetry.api.trace.TraceState.builder(); diff --git a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/AdviceUtils.java b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/AdviceUtils.java index b066379583..83c006a2fb 100644 --- a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/AdviceUtils.java +++ b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/AdviceUtils.java @@ -68,14 +68,6 @@ public class AdviceUtils { } } - private static void finishSpanIfPresentInAttributes( - Map attributes, Throwable throwable) { - - io.opentelemetry.context.Context context = - (io.opentelemetry.context.Context) attributes.remove(CONTEXT_ATTRIBUTE); - finishSpanIfPresent(context, throwable); - } - static void finishSpanIfPresent(io.opentelemetry.context.Context context, Throwable throwable) { if (context != null) { Span span = Span.fromContext(context); @@ -87,6 +79,14 @@ public class AdviceUtils { } } + private static void finishSpanIfPresentInAttributes( + Map attributes, Throwable throwable) { + + io.opentelemetry.context.Context context = + (io.opentelemetry.context.Context) attributes.remove(CONTEXT_ATTRIBUTE); + finishSpanIfPresent(context, throwable); + } + public static class SpanFinishingSubscriber implements CoreSubscriber { private final CoreSubscriber subscriber; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/matcher/ReferenceMatcher.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/matcher/ReferenceMatcher.java index 28a4519388..c8a944cf6f 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/matcher/ReferenceMatcher.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/matcher/ReferenceMatcher.java @@ -127,7 +127,7 @@ public final class ReferenceMatcher { new Mismatch.MissingClass( reference.getSources().toArray(new Source[0]), reference.getClassName())); } - return checkMatch(reference, resolution.resolve()); + return checkThirdPartyTypeMatch(reference, resolution.resolve()); } } catch (Exception e) { if (e.getMessage().startsWith("Cannot resolve type description for ")) { @@ -187,7 +187,8 @@ public final class ReferenceMatcher { superType -> collectMethodsFromTypeHierarchy(superType, abstractMethods, plainMethods)); } - private static List checkMatch(Reference reference, TypeDescription typeOnClasspath) { + private static List checkThirdPartyTypeMatch( + Reference reference, TypeDescription typeOnClasspath) { List mismatches = Collections.emptyList(); for (Reference.Flag flag : reference.getFlags()) {