Skip to content

Remove core OTEL helper classes from injection #110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 13, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,6 @@ public int getOrder() {
@Override
public String[] helperClassNames() {
return new String[] {
"io.opentelemetry.instrumentation.grpc.v1_5.common.GrpcHelper",
"io.opentelemetry.instrumentation.grpc.v1_5.client.GrpcClientTracer",
"io.opentelemetry.instrumentation.grpc.v1_5.client.GrpcInjectAdapter",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor$TracingClientCall",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor$TracingClientCallListener",
"io.opentelemetry.instrumentation.grpc.v1_5.server.GrpcExtractAdapter",
"io.opentelemetry.instrumentation.grpc.v1_5.server.GrpcServerTracer",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor$TracingServerCall",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor$TracingServerCallListener",
"io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcTracer",
"io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcSpanDecorator",
"io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.InstrumentationName",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,17 @@
import io.grpc.ForwardingClientCallListener;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcSpanDecorator;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcTracer;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.InstrumentationName;
import io.opentelemetry.trace.Span;
import io.opentelemetry.trace.Tracer;
import org.hypertrace.agent.core.HypertraceConfig;
import org.hypertrace.agent.core.HypertraceSemanticAttributes;

public class GrpcClientInterceptor implements ClientInterceptor {

private static final GrpcTracer TRACER = new GrpcTracer();
private static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.grpc");

@Override
public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,6 @@ public int getOrder() {
@Override
public String[] helperClassNames() {
return new String[] {
"io.opentelemetry.instrumentation.grpc.v1_5.common.GrpcHelper",
"io.opentelemetry.instrumentation.grpc.v1_5.client.GrpcClientTracer",
"io.opentelemetry.instrumentation.grpc.v1_5.client.GrpcInjectAdapter",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor$TracingClientCall",
"io.opentelemetry.instrumentation.grpc.v1_5.client.TracingClientInterceptor$TracingClientCallListener",
"io.opentelemetry.instrumentation.grpc.v1_5.server.GrpcExtractAdapter",
"io.opentelemetry.instrumentation.grpc.v1_5.server.GrpcServerTracer",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor$TracingServerCall",
"io.opentelemetry.instrumentation.grpc.v1_5.server.TracingServerInterceptor$TracingServerCallListener",
"org.hypertrace.agent.filter.FilterProvider",
"org.hypertrace.agent.filter.FilterEvaluator",
"org.hypertrace.agent.filter.FilterResult",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@
import io.grpc.ServerCallHandler;
import io.grpc.ServerInterceptor;
import io.grpc.Status;
import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcSpanDecorator;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.GrpcTracer;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.InstrumentationName;
import io.opentelemetry.instrumentation.hypertrace.grpc.v1_5.server.GrpcServerInterceptor.TracingServerCall.TracingServerCallListener;
import io.opentelemetry.trace.Span;
import io.opentelemetry.trace.Tracer;
import java.util.Map;
import org.hypertrace.agent.core.HypertraceConfig;
import org.hypertrace.agent.core.HypertraceSemanticAttributes;
Expand All @@ -37,7 +38,7 @@

public class GrpcServerInterceptor implements ServerInterceptor {

private static final GrpcTracer TRACER = new GrpcTracer();
private static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.grpc");

@Override
public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@

package io.opentelemetry.instrumentation.hypertrace.okhttp.v3_0;

import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.common.AttributeKey;
import io.opentelemetry.javaagent.instrumentation.okhttp.v3_0.OkHttpClientTracer;
import io.opentelemetry.trace.Span;
import io.opentelemetry.trace.Tracer;
import java.io.IOException;
import java.util.function.Function;
import okhttp3.Headers;
Expand All @@ -38,7 +39,7 @@
public class OkHttpTracingInterceptor implements Interceptor {
private static final Logger log = LoggerFactory.getLogger(OkHttpTracingInterceptor.class);

private static final OkHttpClientTracer TRACER = OkHttpClientTracer.TRACER;
private static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.okhttp");

@Override
public Response intercept(Chain chain) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v2_3;

import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.trace.Tracer;

public class InstrumentationName {
public static final String[] INSTRUMENTATION_NAME = {"servlet", "servlet-2"};
public static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.servlet");
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v2_3;

import static io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2HttpServerTracer.TRACER;
import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.safeHasSuperType;
import static io.opentelemetry.javaagent.tooling.matcher.NameMatchers.namedOneOf;
Expand Down Expand Up @@ -87,10 +86,6 @@ public Map<String, String> contextStore() {
@Override
public String[] helperClassNames() {
return new String[] {
"io.opentelemetry.instrumentation.servlet.HttpServletRequestGetter",
"io.opentelemetry.instrumentation.servlet.ServletHttpServerTracer",
"io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2HttpServerTracer",
"io.opentelemetry.javaagent.instrumentation.servlet.v2_2.ResponseWithStatus",
"org.hypertrace.agent.filter.FilterProvider",
"org.hypertrace.agent.filter.FilterEvaluator",
"org.hypertrace.agent.filter.FilterResult",
Expand Down Expand Up @@ -148,7 +143,7 @@ public static Object start(

HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

rootStart = true;
response = new BufferingHttpServletResponse(httpResponse);
Expand Down Expand Up @@ -191,7 +186,7 @@ public static void stopSpan(
}

request.removeAttribute(ALREADY_LOADED);
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

BufferingHttpServletResponse bufferingResponse = (BufferingHttpServletResponse) response;
BufferingHttpServletRequest bufferingRequest = (BufferingHttpServletRequest) request;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v3_0;

import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.trace.Tracer;

/**
* A helper class to hold instrumentation name. The advice class cannot access the constant defined
* in the instrumenter class.
*/
public class InstrumentationName {
public static final String[] INSTRUMENTATION_NAME = {"servlet", "servlet-3"};
public static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.servlet");
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v3_0;

import static io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.TRACER;
import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.safeHasSuperType;
import static io.opentelemetry.javaagent.tooling.matcher.NameMatchers.namedOneOf;
Expand Down Expand Up @@ -47,10 +46,6 @@
import org.hypertrace.agent.filter.FilterProvider;
import org.hypertrace.agent.filter.FilterResult;

/**
* TODO https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/1395 is resolved
* move this to org.hypertrace package.
*/
@AutoService(Instrumenter.class)
public class Servlet30BodyInstrumentation extends Instrumenter.Default {

Expand Down Expand Up @@ -84,11 +79,6 @@ public ElementMatcher<? super TypeDescription> typeMatcher() {
@Override
public String[] helperClassNames() {
return new String[] {
"io.opentelemetry.instrumentation.servlet.HttpServletRequestGetter",
"io.opentelemetry.instrumentation.servlet.ServletHttpServerTracer",
"io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3HttpServerTracer",
// TODO Add these to bootstrap classloader so they don't have to referenced in every
// instrumentation, see https://github.com/hypertrace/javaagent/issues/17
"org.hypertrace.agent.filter.FilterProvider",
"org.hypertrace.agent.filter.FilterEvaluator",
"org.hypertrace.agent.filter.FilterResult",
Expand Down Expand Up @@ -122,6 +112,7 @@ public Map<? extends ElementMatcher<? super MethodDescription>, String> transfor
public static class FilterAdvice {
// request attribute key injected at first filerChain.doFilter
private static final String ALREADY_LOADED = "__org.hypertrace.agent.on_start_executed";
private static final String TRACER_NAME = "org.hypertrace.agent.servlet";

@Advice.OnMethodEnter(suppress = Throwable.class, skipOn = FilterResult.class)
public static Object start(
Expand All @@ -147,7 +138,7 @@ public static Object start(

HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

rootStart = true;
response = new BufferingHttpServletResponse(httpResponse);
Expand Down Expand Up @@ -188,7 +179,7 @@ public static void stopSpan(
}

request.removeAttribute(ALREADY_LOADED);
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

AtomicBoolean responseHandled = new AtomicBoolean(false);
if (request.isAsyncStarted()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v3_1;

import io.opentelemetry.OpenTelemetry;
import io.opentelemetry.trace.Tracer;

/**
* A helper class to hold instrumentation name. The advice class cannot access the constant defined
* in the instrumenter class.
*/
public class InstrumentationName {
public static final String[] INSTRUMENTATION_NAME = {"servlet", "servlet-3"};
public static final Tracer TRACER = OpenTelemetry.getTracer("org.hypertrace.agent.servlet");
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package io.opentelemetry.instrumentation.hypertrace.servlet.v3_1;

import static io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.TRACER;

import io.opentelemetry.instrumentation.hypertrace.servlet.common.ServletSpanDecorator;
import io.opentelemetry.trace.Span;
import java.util.Enumeration;
Expand Down Expand Up @@ -64,7 +62,7 @@ public static Object start(

HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

rootStart = true;
response = new BufferingHttpServletResponse(httpResponse);
Expand Down Expand Up @@ -106,7 +104,7 @@ public static void stopSpan(
}

request.removeAttribute(ALREADY_LOADED);
Span currentSpan = TRACER.getCurrentSpan();
Span currentSpan = InstrumentationName.TRACER.getCurrentSpan();

AtomicBoolean responseHandled = new AtomicBoolean(false);
if (request.isAsyncStarted()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@ public ElementMatcher<? super TypeDescription> typeMatcher() {
@Override
public String[] helperClassNames() {
return new String[] {
"io.opentelemetry.instrumentation.servlet.HttpServletRequestGetter",
"io.opentelemetry.instrumentation.servlet.ServletHttpServerTracer",
"io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3HttpServerTracer",
// TODO Add these to bootstrap classloader so they don't have to referenced in every
// instrumentation, see https://github.com/hypertrace/javaagent/issues/17
"org.hypertrace.agent.filter.FilterProvider",
"org.hypertrace.agent.filter.FilterEvaluator",
"org.hypertrace.agent.filter.FilterResult",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public String[] helperClassNames() {
"io.opentelemetry.instrumentation.hypertrace.servlet.v3_1.BufferingHttpServletRequest",
"io.opentelemetry.instrumentation.hypertrace.servlet.v3_1.BufferingHttpServletRequest$ServletInputStreamWrapper",
"io.opentelemetry.instrumentation.hypertrace.servlet.v3_1.Servlet31Advice",
// TODO Instrumentation name is not used in the advice method to check whether
// TODO Instrumentation name is not used in the advice method to check whether
// instrumentation is enabled or not
packageName + ".InstrumentationName",
};
Expand Down