From 4a51b462c0d55754296bf756087ce6660e67f7ed Mon Sep 17 00:00:00 2001 From: chenlujjj <953546398@qq.com> Date: Wed, 15 Jan 2025 22:32:20 +0800 Subject: [PATCH] add test for proxy client --- .../jsonrpc4j-1.3/javaagent/build.gradle.kts | 8 ++ .../v1_3/JsonRpcClientInstrumentation.java | 10 +- .../v1_3/JsonRpcProxyInstrumentation.java | 74 ++++++++++- .../jsonrpc4j/v1_3/JsonRpcSingletons.java | 58 +-------- .../jsonrpc4j/v1_3/AgentJsonRpcTest.java | 116 ++++++++++++++++++ .../jsonrpc4j/v1_3/JettyServer.java | 89 ++++++++++++++ .../JsonRpcClientAttributesExtractor.java | 8 +- .../v1_3/JsonRpcClientAttributesGetter.java | 8 +- ...Request.java => JsonRpcClientRequest.java} | 6 +- ...sponse.java => JsonRpcClientResponse.java} | 4 +- .../v1_3/JsonRpcClientSpanNameExtractor.java | 4 +- .../JsonRpcServerAttributesExtractor.java | 12 +- .../v1_3/JsonRpcServerAttributesGetter.java | 8 +- ...Request.java => JsonRpcServerRequest.java} | 4 +- ...r.java => JsonRpcServerRequestGetter.java} | 6 +- ...sponse.java => JsonRpcServerResponse.java} | 4 +- .../v1_3/JsonRpcServerSpanNameExtractor.java | 4 +- .../JsonRpcServerSpanStatusExtractor.java | 6 +- .../jsonrpc4j/v1_3/JsonRpcTelemetry.java | 10 +- .../v1_3/JsonRpcTelemetryBuilder.java | 20 +-- ...penTelemetryJsonRpcInvocationListener.java | 10 +- 21 files changed, 351 insertions(+), 118 deletions(-) create mode 100644 instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JettyServer.java rename instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/{SimpleJsonRpcRequest.java => JsonRpcClientRequest.java} (78%) rename instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/{SimpleJsonRpcResponse.java => JsonRpcClientResponse.java} (74%) rename instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/{JsonRpcRequest.java => JsonRpcServerRequest.java} (82%) rename instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/{JsonRpcRequestGetter.java => JsonRpcServerRequestGetter.java} (63%) rename instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/{JsonRpcResponse.java => JsonRpcServerResponse.java} (83%) diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/build.gradle.kts b/instrumentation/jsonrpc4j-1.3/javaagent/build.gradle.kts index 0fa473ae49cd..34a4315d8acd 100644 --- a/instrumentation/jsonrpc4j-1.3/javaagent/build.gradle.kts +++ b/instrumentation/jsonrpc4j-1.3/javaagent/build.gradle.kts @@ -17,6 +17,14 @@ dependencies { library("com.github.briandilley.jsonrpc4j:jsonrpc4j:1.3.3") testImplementation(project(":instrumentation:jsonrpc4j-1.3:testing")) + + testImplementation("com.fasterxml.jackson.core:jackson-databind:2.13.3") + + testImplementation("org.eclipse.jetty:jetty-server:9.4.49.v20220914") + + testImplementation("org.eclipse.jetty:jetty-servlet:9.4.49.v20220914") + + testImplementation("javax.portlet:portlet-api:2.0") } tasks { diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcClientInstrumentation.java b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcClientInstrumentation.java index 5a985825c8db..605c241a9507 100644 --- a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcClientInstrumentation.java +++ b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcClientInstrumentation.java @@ -16,8 +16,8 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; -import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.SimpleJsonRpcRequest; -import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.SimpleJsonRpcResponse; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientRequest; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientResponse; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import java.util.Map; @@ -63,7 +63,7 @@ public static void onEnter( @Advice.Local("otelContext") Context context, @Advice.Local("otelScope") Scope scope) { Context parentContext = Context.current(); - SimpleJsonRpcRequest request = new SimpleJsonRpcRequest(methodName, argument); + JsonRpcClientRequest request = new JsonRpcClientRequest(methodName, argument); if (!CLIENT_INSTRUMENTER.shouldStart(parentContext, request)) { return; } @@ -88,8 +88,8 @@ public static void onExit( scope.close(); CLIENT_INSTRUMENTER.end( context, - new SimpleJsonRpcRequest(methodName, argument), - new SimpleJsonRpcResponse(result), + new JsonRpcClientRequest(methodName, argument), + new JsonRpcClientResponse(result), throwable); } } diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcProxyInstrumentation.java b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcProxyInstrumentation.java index 4941ba36506d..487c0869fa5b 100644 --- a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcProxyInstrumentation.java +++ b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcProxyInstrumentation.java @@ -6,14 +6,22 @@ package io.opentelemetry.javaagent.instrumentation.jsonrpc4j.v1_3; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +import static io.opentelemetry.javaagent.instrumentation.jsonrpc4j.v1_3.JsonRpcSingletons.CLIENT_INSTRUMENTER; import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPrivate; import static net.bytebuddy.matcher.ElementMatchers.isStatic; import static net.bytebuddy.matcher.ElementMatchers.named; import com.googlecode.jsonrpc4j.IJsonRpcClient; +import io.opentelemetry.context.Context; +import io.opentelemetry.context.Scope; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientRequest; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientResponse; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; import java.util.Map; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; @@ -49,9 +57,69 @@ public static void onExit( @Advice.Argument(3) Map extraHeaders, @Advice.Return(readOnly = false) Object proxy) { - proxy = - JsonRpcSingletons.instrumentCreateClientProxy( - classLoader, proxyInterface, client, extraHeaders, proxy); + proxy = instrumentCreateClientProxy(classLoader, proxyInterface, client, extraHeaders, proxy); + } + + private static Object proxyObjectMethods(Method method, Object proxyObject, Object[] args) { + String name = method.getName(); + switch (name) { + case "toString": + return proxyObject.getClass().getName() + "@" + System.identityHashCode(proxyObject); + case "hashCode": + return System.identityHashCode(proxyObject); + case "equals": + return proxyObject == args[0]; + default: + throw new IllegalArgumentException(method.getName() + " is not a member of java.lang.Object"); + } + } + + @SuppressWarnings({"unchecked"}) + public static T instrumentCreateClientProxy( + ClassLoader classLoader, + Class proxyInterface, + IJsonRpcClient client, + Map extraHeaders, + Object proxy) { + + return (T) + Proxy.newProxyInstance( + classLoader, + new Class[] {proxyInterface}, + new InvocationHandler() { + @Override + public Object invoke(Object proxy1, Method method, Object[] args) throws Throwable { + if (method.getDeclaringClass() == Object.class) { + return proxyObjectMethods(method, proxy1, args); + } + // before invoke + Context parentContext = Context.current(); + JsonRpcClientRequest request = new JsonRpcClientRequest(method, args); + if (!CLIENT_INSTRUMENTER.shouldStart(parentContext, request)) { + return method.invoke(proxy, args); + } + + Context context = CLIENT_INSTRUMENTER.start(parentContext, request); + Scope scope = context.makeCurrent(); + try { + Object result = method.invoke(proxy, args); + // after invoke + scope.close(); + CLIENT_INSTRUMENTER.end( + context, + new JsonRpcClientRequest(method, args), + new JsonRpcClientResponse(result), + null); + return result; + + } catch (Throwable t) { + // after invoke + scope.close(); + CLIENT_INSTRUMENTER.end(context, request, null, t); + throw t; + } + } + }); } } } diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcSingletons.java b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcSingletons.java index 1085b9e4e400..85c9dc33c2a8 100644 --- a/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcSingletons.java +++ b/instrumentation/jsonrpc4j-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JsonRpcSingletons.java @@ -5,25 +5,18 @@ package io.opentelemetry.javaagent.instrumentation.jsonrpc4j.v1_3; -import com.googlecode.jsonrpc4j.IJsonRpcClient; import com.googlecode.jsonrpc4j.InvocationListener; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientRequest; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcClientResponse; import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.JsonRpcTelemetry; -import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.SimpleJsonRpcRequest; -import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.SimpleJsonRpcResponse; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.Map; public final class JsonRpcSingletons { public static final InvocationListener SERVER_INVOCATION_LISTENER; - public static final Instrumenter CLIENT_INSTRUMENTER; + public static final Instrumenter CLIENT_INSTRUMENTER; static { JsonRpcTelemetry telemetry = JsonRpcTelemetry.builder(GlobalOpenTelemetry.get()).build(); @@ -33,49 +26,4 @@ public final class JsonRpcSingletons { } private JsonRpcSingletons() {} - - @SuppressWarnings({"unchecked"}) - public static T instrumentCreateClientProxy( - ClassLoader classLoader, - Class proxyInterface, - IJsonRpcClient client, - Map extraHeaders, - Object proxy) { - - return (T) - Proxy.newProxyInstance( - classLoader, - new Class[] {proxyInterface}, - new InvocationHandler() { - @Override - public Object invoke(Object proxy1, Method method, Object[] args) throws Throwable { - // before invoke - Context parentContext = Context.current(); - SimpleJsonRpcRequest request = new SimpleJsonRpcRequest(method, args); - if (!CLIENT_INSTRUMENTER.shouldStart(parentContext, request)) { - return method.invoke(proxy, args); - } - - Context context = CLIENT_INSTRUMENTER.start(parentContext, request); - Scope scope = context.makeCurrent(); - try { - Object result = method.invoke(proxy, args); - // after invoke - scope.close(); - CLIENT_INSTRUMENTER.end( - context, - new SimpleJsonRpcRequest(method, args), - new SimpleJsonRpcResponse(result), - null); - return result; - - } catch (Throwable t) { - // after invoke - scope.close(); - CLIENT_INSTRUMENTER.end(context, request, null, t); - throw t; - } - } - }); - } } diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/AgentJsonRpcTest.java b/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/AgentJsonRpcTest.java index 57ba6e371908..ea44eb9c0f18 100644 --- a/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/AgentJsonRpcTest.java +++ b/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/AgentJsonRpcTest.java @@ -5,10 +5,31 @@ package io.opentelemetry.javaagent.instrumentation.jsonrpc4j.v1_3; +import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; +import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; +import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_JSONRPC_VERSION; +import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_METHOD; +import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SERVICE; +import static io.opentelemetry.semconv.incubating.RpcIncubatingAttributes.RPC_SYSTEM; + +import com.fasterxml.jackson.databind.ObjectMapper; import com.googlecode.jsonrpc4j.JsonRpcBasicServer; +import com.googlecode.jsonrpc4j.JsonRpcHttpClient; +import com.googlecode.jsonrpc4j.ProxyUtil; +import com.googlecode.jsonrpc4j.spring.rest.JsonRpcRestClient; +import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.AbstractJsonRpcTest; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.CalculatorService; +import io.opentelemetry.instrumentation.jsonrpc4j.v1_3.CalculatorServiceImpl; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; class AgentJsonRpcTest extends AbstractJsonRpcTest { @@ -25,4 +46,99 @@ protected InstrumentationExtension testing() { protected JsonRpcBasicServer configureServer(JsonRpcBasicServer server) { return server; } + + @Test + void testClient() throws Throwable { + CalculatorService clientProxy = + ProxyUtil.createClientProxy( + this.getClass().getClassLoader(), CalculatorService.class, getHttpClient()); + int res = + testing() + .runWithSpan( + "parent", + () -> { + return clientProxy.add(1, 2); + }); + + assertThat(res).isEqualTo(3); + + testing() + .waitAndAssertTraces( + trace -> + trace.hasSpansSatisfyingExactly( + span -> span.hasName("parent").hasKind(SpanKind.INTERNAL).hasNoParent(), + span -> + span.hasName( + "io.opentelemetry.instrumentation.jsonrpc4j.v1_3.CalculatorService/add") + .hasKind(SpanKind.CLIENT) + .hasParent(trace.getSpan(0)) + .hasAttributesSatisfyingExactly( + equalTo(RPC_SYSTEM, "jsonrpc"), + equalTo(RPC_JSONRPC_VERSION, "2.0"), + equalTo( + RPC_SERVICE, + "io.opentelemetry.instrumentation.jsonrpc4j.v1_3.CalculatorService"), + equalTo(RPC_METHOD, "add"))), + trace -> trace.hasSpansSatisfyingExactly(span -> span.hasKind(SpanKind.SERVER))); + + testing() + .waitAndAssertMetrics( + "io.opentelemetry.jsonrpc4j-1.3", + "rpc.client.duration", + metrics -> + metrics.anySatisfy( + metric -> + assertThat(metric) + .hasUnit("ms") + .hasHistogramSatisfying( + histogram -> + histogram.hasPointsSatisfying( + point -> + point.hasAttributesSatisfying( + equalTo(RPC_METHOD, "add"), + equalTo( + RPC_SERVICE, + "io.opentelemetry.instrumentation.jsonrpc4j.v1_3.CalculatorService"), + equalTo(RPC_SYSTEM, "jsonrpc")))))); + } + + private JettyServer jettyServer; + + @BeforeAll + public void setup() throws Exception { + this.jettyServer = createServer(); + } + + private JettyServer createServer() throws Exception { + JettyServer jettyServer = new JettyServer(CalculatorServiceImpl.class); + jettyServer.startup(); + return jettyServer; + } + + protected JsonRpcRestClient getClient() throws MalformedURLException { + return getClient(JettyServer.SERVLET); + } + + protected JsonRpcRestClient getClient(final String servlet) throws MalformedURLException { + return new JsonRpcRestClient(new URL(jettyServer.getCustomServerUrlString(servlet))); + } + + protected JsonRpcHttpClient getHttpClient() throws MalformedURLException { + Map header = new HashMap<>(); + return new JsonRpcHttpClient( + new ObjectMapper(), + new URL(jettyServer.getCustomServerUrlString(JettyServer.SERVLET)), + header); + } + + protected JsonRpcHttpClient getHttpClient(final String servlet) throws MalformedURLException { + Map header = new HashMap<>(); + return new JsonRpcHttpClient( + new ObjectMapper(), new URL(jettyServer.getCustomServerUrlString(servlet)), header); + } + + @AfterAll + public void teardown() throws Exception { + jettyServer.stop(); + } } diff --git a/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JettyServer.java b/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JettyServer.java new file mode 100644 index 000000000000..7f6e906af6b4 --- /dev/null +++ b/instrumentation/jsonrpc4j-1.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jsonrpc4j/v1_3/JettyServer.java @@ -0,0 +1,89 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.jsonrpc4j.v1_3; + +import com.googlecode.jsonrpc4j.AnnotationsErrorResolver; +import com.googlecode.jsonrpc4j.JsonRpcServer; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.util.Random; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; + +@SuppressWarnings("WeakerAccess") +public class JettyServer implements AutoCloseable { + + public static final String DEFAULT_LOCAL_HOSTNAME = "127.0.0.1"; + + public static final String SERVLET = "someSunnyServlet"; + private static final String PROTOCOL = "http"; + + private final Class service; + + private Server jetty; + private int port; + + JettyServer(Class service) { + this.service = service; + } + + public String getCustomServerUrlString(final String servletName) { + return PROTOCOL + "://" + DEFAULT_LOCAL_HOSTNAME + ":" + port + "/" + servletName; + } + + public void startup() throws Exception { + port = 10000 + new Random().nextInt(30000); + jetty = new Server(port); + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); + context.setContextPath("/"); + jetty.setHandler(context); + ServletHolder servlet = context.addServlet(JsonRpcTestServlet.class, "/" + SERVLET); + servlet.setInitParameter("class", service.getCanonicalName()); + jetty.start(); + } + + @Override + public void close() throws Exception { + this.stop(); + } + + public void stop() throws Exception { + jetty.stop(); + } + + public static class JsonRpcTestServlet extends HttpServlet { + + static final long serialVersionUID = 1L; + private transient JsonRpcServer jsonRpcServer; + + @Override + public void init() { + try { + final Class aClass = Class.forName(getInitParameter("class")); + final Object instance = aClass.getConstructor().newInstance(); + jsonRpcServer = new JsonRpcServer(instance); + jsonRpcServer.setErrorResolver(AnnotationsErrorResolver.INSTANCE); + } catch (ClassNotFoundException + | NoSuchMethodException + | InstantiationException + | InvocationTargetException + | IllegalAccessException e) { + e.printStackTrace(); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + jsonRpcServer.handle(request, response); + } + } +} diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesExtractor.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesExtractor.java index 5696bf2ee898..17cf2914e6dc 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesExtractor.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesExtractor.java @@ -12,11 +12,11 @@ // Check https://opentelemetry.io/docs/specs/semconv/rpc/json-rpc/ final class JsonRpcClientAttributesExtractor - implements AttributesExtractor { + implements AttributesExtractor { @Override public void onStart( - AttributesBuilder attributes, Context parentContext, SimpleJsonRpcRequest jsonRpcRequest) { + AttributesBuilder attributes, Context parentContext, JsonRpcClientRequest jsonRpcRequest) { attributes.put("rpc.jsonrpc.version", "2.0"); } @@ -24,7 +24,7 @@ public void onStart( public void onEnd( AttributesBuilder attributes, Context context, - SimpleJsonRpcRequest jsonRpcRequest, - @Nullable SimpleJsonRpcResponse jsonRpcResponse, + JsonRpcClientRequest jsonRpcRequest, + @Nullable JsonRpcClientResponse jsonRpcResponse, @Nullable Throwable error) {} } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesGetter.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesGetter.java index c85de10f4d5c..49a9735fc759 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesGetter.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientAttributesGetter.java @@ -10,16 +10,16 @@ // Check // https://github.com/open-telemetry/semantic-conventions/blob/main/docs/rpc/rpc-metrics.md#attributes // Check https://opentelemetry.io/docs/specs/semconv/rpc/json-rpc/ -public enum JsonRpcClientAttributesGetter implements RpcAttributesGetter { +public enum JsonRpcClientAttributesGetter implements RpcAttributesGetter { INSTANCE; @Override - public String getSystem(SimpleJsonRpcRequest request) { + public String getSystem(JsonRpcClientRequest request) { return "jsonrpc"; } @Override - public String getService(SimpleJsonRpcRequest request) { + public String getService(JsonRpcClientRequest request) { if (request.getMethod() != null) { return request.getMethod().getDeclaringClass().getName(); } @@ -27,7 +27,7 @@ public String getService(SimpleJsonRpcRequest request) { } @Override - public String getMethod(SimpleJsonRpcRequest request) { + public String getMethod(JsonRpcClientRequest request) { return request.getMethodName(); } } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcRequest.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientRequest.java similarity index 78% rename from instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcRequest.java rename to instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientRequest.java index 4d1a09d678a6..a7882ff6abc6 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcRequest.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientRequest.java @@ -7,18 +7,18 @@ import java.lang.reflect.Method; -public final class SimpleJsonRpcRequest { +public final class JsonRpcClientRequest { private final String methodName; private final Object argument; private Method method; - public SimpleJsonRpcRequest(String methodName, Object argument) { + public JsonRpcClientRequest(String methodName, Object argument) { this.methodName = methodName; this.argument = argument; } - public SimpleJsonRpcRequest(Method method, Object argument) { + public JsonRpcClientRequest(Method method, Object argument) { this.method = method; this.methodName = method.getName(); this.argument = argument; diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcResponse.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientResponse.java similarity index 74% rename from instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcResponse.java rename to instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientResponse.java index e1ea2ac8666e..ac2108909b8f 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/SimpleJsonRpcResponse.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientResponse.java @@ -5,11 +5,11 @@ package io.opentelemetry.instrumentation.jsonrpc4j.v1_3; -public final class SimpleJsonRpcResponse { +public final class JsonRpcClientResponse { private final Object result; - public SimpleJsonRpcResponse(Object result) { + public JsonRpcClientResponse(Object result) { this.result = result; } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientSpanNameExtractor.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientSpanNameExtractor.java index a4ab989eef58..d0970ad4ca7a 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientSpanNameExtractor.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcClientSpanNameExtractor.java @@ -8,9 +8,9 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import java.lang.reflect.Method; -public class JsonRpcClientSpanNameExtractor implements SpanNameExtractor { +public class JsonRpcClientSpanNameExtractor implements SpanNameExtractor { @Override - public String extract(SimpleJsonRpcRequest request) { + public String extract(JsonRpcClientRequest request) { if (request.getMethod() == null) { return request.getMethodName(); } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesExtractor.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesExtractor.java index 36c46eaa2e1c..adeb8c0e6f3f 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesExtractor.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesExtractor.java @@ -17,7 +17,7 @@ // Check https://opentelemetry.io/docs/specs/semconv/rpc/json-rpc/ final class JsonRpcServerAttributesExtractor - implements AttributesExtractor { + implements AttributesExtractor { private static final AttributeKey RPC_JSONRPC_ERROR_CODE = AttributeKey.longKey("rpc.jsonrpc.error_code"); @@ -27,7 +27,9 @@ final class JsonRpcServerAttributesExtractor @Override public void onStart( - AttributesBuilder attributes, Context parentContext, JsonRpcRequest jsonRpcRequest) { + AttributesBuilder attributes, + Context parentContext, + JsonRpcServerRequest jsonRpcServerRequest) { attributes.put("rpc.jsonrpc.version", "2.0"); } @@ -35,8 +37,8 @@ public void onStart( public void onEnd( AttributesBuilder attributes, Context context, - JsonRpcRequest jsonRpcRequest, - @Nullable JsonRpcResponse jsonRpcResponse, + JsonRpcServerRequest jsonRpcServerRequest, + @Nullable JsonRpcServerResponse jsonRpcServerResponse, @Nullable Throwable error) { // use the DEFAULT_ERROR_RESOLVER to extract error code and message if (error != null) { @@ -45,7 +47,7 @@ public void onEnd( AnnotationsErrorResolver.INSTANCE, DefaultErrorResolver.INSTANCE); ErrorResolver.JsonError jsonError = errorResolver.resolveError( - error, jsonRpcRequest.getMethod(), jsonRpcRequest.getArguments()); + error, jsonRpcServerRequest.getMethod(), jsonRpcServerRequest.getArguments()); attributes.put(RPC_JSONRPC_ERROR_CODE, jsonError.code); attributes.put(RPC_JSONRPC_ERROR_MESSAGE, jsonError.message); } else { diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesGetter.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesGetter.java index bd69490a944a..9e61b42c073a 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesGetter.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerAttributesGetter.java @@ -10,21 +10,21 @@ // Check // https://github.com/open-telemetry/semantic-conventions/blob/main/docs/rpc/rpc-metrics.md#attributes // Check https://opentelemetry.io/docs/specs/semconv/rpc/json-rpc/ -public enum JsonRpcServerAttributesGetter implements RpcAttributesGetter { +public enum JsonRpcServerAttributesGetter implements RpcAttributesGetter { INSTANCE; @Override - public String getSystem(JsonRpcRequest request) { + public String getSystem(JsonRpcServerRequest request) { return "jsonrpc"; } @Override - public String getService(JsonRpcRequest request) { + public String getService(JsonRpcServerRequest request) { return request.getMethod().getDeclaringClass().getName(); } @Override - public String getMethod(JsonRpcRequest request) { + public String getMethod(JsonRpcServerRequest request) { return request.getMethod().getName(); } } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequest.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequest.java similarity index 82% rename from instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequest.java rename to instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequest.java index bfa0f49b0168..65c96abea75d 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequest.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequest.java @@ -9,12 +9,12 @@ import java.lang.reflect.Method; import java.util.List; -public final class JsonRpcRequest { +public final class JsonRpcServerRequest { private final Method method; private final List arguments; - JsonRpcRequest(Method method, List arguments) { + JsonRpcServerRequest(Method method, List arguments) { this.method = method; this.arguments = arguments; } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequestGetter.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequestGetter.java similarity index 63% rename from instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequestGetter.java rename to instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequestGetter.java index 8f3fd51f9b27..381b19f5851d 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcRequestGetter.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerRequestGetter.java @@ -9,17 +9,17 @@ import java.util.ArrayList; import javax.annotation.Nullable; -enum JsonRpcRequestGetter implements TextMapGetter { +enum JsonRpcServerRequestGetter implements TextMapGetter { INSTANCE; @Override - public Iterable keys(JsonRpcRequest request) { + public Iterable keys(JsonRpcServerRequest request) { return new ArrayList<>(); } @Override @Nullable - public String get(@Nullable JsonRpcRequest request, String key) { + public String get(@Nullable JsonRpcServerRequest request, String key) { return null; } } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcResponse.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerResponse.java similarity index 83% rename from instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcResponse.java rename to instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerResponse.java index 9279e492d324..1eb99a28afc2 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcResponse.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerResponse.java @@ -9,12 +9,12 @@ import java.lang.reflect.Method; import java.util.List; -public final class JsonRpcResponse { +public final class JsonRpcServerResponse { private final Method method; private final List params; private final Object result; - JsonRpcResponse(Method method, List params, Object result) { + JsonRpcServerResponse(Method method, List params, Object result) { this.method = method; this.params = params; this.result = result; diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanNameExtractor.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanNameExtractor.java index 0639a40cc891..6c95126372a6 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanNameExtractor.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanNameExtractor.java @@ -8,10 +8,10 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import java.lang.reflect.Method; -public class JsonRpcServerSpanNameExtractor implements SpanNameExtractor { +public class JsonRpcServerSpanNameExtractor implements SpanNameExtractor { // Follow https://opentelemetry.io/docs/specs/semconv/rpc/rpc-spans/#span-name @Override - public String extract(JsonRpcRequest request) { + public String extract(JsonRpcServerRequest request) { Method method = request.getMethod(); return String.format("%s/%s", method.getDeclaringClass().getName(), method.getName()); } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanStatusExtractor.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanStatusExtractor.java index 27509950f1e7..3cdfaec03ce7 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanStatusExtractor.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcServerSpanStatusExtractor.java @@ -13,15 +13,15 @@ import javax.annotation.Nullable; public enum JsonRpcServerSpanStatusExtractor - implements SpanStatusExtractor { + implements SpanStatusExtractor { INSTANCE; /** Extracts the status from the response and sets it to the {@code spanStatusBuilder}. */ @Override public void extract( SpanStatusBuilder spanStatusBuilder, - JsonRpcRequest jsonRpcRequest, - @Nullable JsonRpcResponse jsonRpcResponse, + JsonRpcServerRequest jsonRpcServerRequest, + @Nullable JsonRpcServerResponse jsonRpcServerResponse, @Nullable Throwable error) { if (error == null) { spanStatusBuilder.setStatus(StatusCode.OK); diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetry.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetry.java index 0c54be195e7d..f81265157438 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetry.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetry.java @@ -19,13 +19,13 @@ public static JsonRpcTelemetryBuilder builder(OpenTelemetry openTelemetry) { return new JsonRpcTelemetryBuilder(openTelemetry); } - private final Instrumenter serverInstrumenter; - private final Instrumenter clientInstrumenter; + private final Instrumenter serverInstrumenter; + private final Instrumenter clientInstrumenter; private final ContextPropagators propagators; JsonRpcTelemetry( - Instrumenter serverInstrumenter, - Instrumenter clientInstrumenter, + Instrumenter serverInstrumenter, + Instrumenter clientInstrumenter, ContextPropagators propagators) { this.serverInstrumenter = serverInstrumenter; this.clientInstrumenter = clientInstrumenter; @@ -36,7 +36,7 @@ public InvocationListener newServerInvocationListener() { return new OpenTelemetryJsonRpcInvocationListener(serverInstrumenter); } - public Instrumenter getClientInstrumenter() { + public Instrumenter getClientInstrumenter() { return clientInstrumenter; } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetryBuilder.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetryBuilder.java index 74fdaf810988..aeb6da585f90 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetryBuilder.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/JsonRpcTelemetryBuilder.java @@ -26,9 +26,10 @@ public class JsonRpcTelemetryBuilder { private final OpenTelemetry openTelemetry; private final List< - AttributesExtractor> + AttributesExtractor> additionalClientExtractors = new ArrayList<>(); - private final List> + private final List< + AttributesExtractor> additionalServerExtractors = new ArrayList<>(); JsonRpcTelemetryBuilder(OpenTelemetry openTelemetry) { @@ -42,7 +43,7 @@ public class JsonRpcTelemetryBuilder { */ @CanIgnoreReturnValue public JsonRpcTelemetryBuilder addClientAttributeExtractor( - AttributesExtractor + AttributesExtractor attributesExtractor) { additionalClientExtractors.add(attributesExtractor); return this; @@ -55,21 +56,22 @@ public JsonRpcTelemetryBuilder addClientAttributeExtractor( */ @CanIgnoreReturnValue public JsonRpcTelemetryBuilder addServerAttributeExtractor( - AttributesExtractor attributesExtractor) { + AttributesExtractor + attributesExtractor) { additionalServerExtractors.add(attributesExtractor); return this; } public JsonRpcTelemetry build() { - SpanNameExtractor clientSpanNameExtractor = + SpanNameExtractor clientSpanNameExtractor = new JsonRpcClientSpanNameExtractor(); - SpanNameExtractor serverSpanNameExtractor = + SpanNameExtractor serverSpanNameExtractor = new JsonRpcServerSpanNameExtractor(); - InstrumenterBuilder clientInstrumenterBuilder = + InstrumenterBuilder clientInstrumenterBuilder = Instrumenter.builder(openTelemetry, INSTRUMENTATION_NAME, clientSpanNameExtractor); - InstrumenterBuilder serverInstrumenterBuilder = + InstrumenterBuilder serverInstrumenterBuilder = Instrumenter.builder(openTelemetry, INSTRUMENTATION_NAME, serverSpanNameExtractor); JsonRpcServerAttributesGetter serverRpcAttributesGetter = @@ -91,7 +93,7 @@ public JsonRpcTelemetry build() { .addOperationMetrics(RpcServerMetrics.get()); return new JsonRpcTelemetry( - serverInstrumenterBuilder.buildServerInstrumenter(JsonRpcRequestGetter.INSTANCE), + serverInstrumenterBuilder.buildServerInstrumenter(JsonRpcServerRequestGetter.INSTANCE), clientInstrumenterBuilder.buildInstrumenter(SpanKindExtractor.alwaysClient()), openTelemetry.getPropagators()); } diff --git a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/OpenTelemetryJsonRpcInvocationListener.java b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/OpenTelemetryJsonRpcInvocationListener.java index a7337f224140..70490fad5a01 100644 --- a/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/OpenTelemetryJsonRpcInvocationListener.java +++ b/instrumentation/jsonrpc4j-1.3/library/src/main/java/io/opentelemetry/instrumentation/jsonrpc4j/v1_3/OpenTelemetryJsonRpcInvocationListener.java @@ -15,13 +15,13 @@ public final class OpenTelemetryJsonRpcInvocationListener implements InvocationListener { - private final Instrumenter serverInstrumenter; + private final Instrumenter serverInstrumenter; private static final ThreadLocal threadLocalContext = new ThreadLocal<>(); private static final ThreadLocal threadLocalScope = new ThreadLocal<>(); public OpenTelemetryJsonRpcInvocationListener( - Instrumenter serverInstrumenter) { + Instrumenter serverInstrumenter) { this.serverInstrumenter = serverInstrumenter; } @@ -34,7 +34,7 @@ public OpenTelemetryJsonRpcInvocationListener( @Override public void willInvoke(Method method, List arguments) { Context parentContext = Context.current(); - JsonRpcRequest request = new JsonRpcRequest(method, arguments); + JsonRpcServerRequest request = new JsonRpcServerRequest(method, arguments); if (!serverInstrumenter.shouldStart(parentContext, request)) { return; } @@ -59,8 +59,8 @@ public void willInvoke(Method method, List arguments) { @Override public void didInvoke( Method method, List arguments, Object result, Throwable t, long duration) { - JsonRpcRequest request = new JsonRpcRequest(method, arguments); - JsonRpcResponse response = new JsonRpcResponse(method, arguments, result); + JsonRpcServerRequest request = new JsonRpcServerRequest(method, arguments); + JsonRpcServerResponse response = new JsonRpcServerResponse(method, arguments, result); threadLocalScope.get().close(); serverInstrumenter.end(threadLocalContext.get(), request, response, t); threadLocalContext.remove();