diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractCallClientInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractCallClientInterceptor.java
deleted file mode 100644
index 93e8e2c41..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractCallClientInterceptor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import io.grpc.Channel;
-import io.grpc.ClientCall;
-import io.grpc.ForwardingClientCall;
-import io.grpc.MethodDescriptor;
-
-import static org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil.formatOperationName;
-
-public abstract class AbstractCallClientInterceptor extends ForwardingClientCall.SimpleForwardingClientCall {
-
- protected final String serviceName;
- protected final String remotePeer;
-
- protected AbstractCallClientInterceptor(ClientCall delegate, MethodDescriptor method, Channel channel) {
- super(delegate);
- this.serviceName = formatOperationName(method);
- this.remotePeer = channel.authority();
- }
-
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractServerImplBuilderInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractServerImplBuilderInterceptor.java
index cf4c81004..12bb526d5 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractServerImplBuilderInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractServerImplBuilderInterceptor.java
@@ -25,6 +25,12 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedI
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+/**
+ * {@link AbstractServerImplBuilderInterceptor} add the {@link CallServerInterceptor} interceptor for each the
+ * ServerService.
+ *
+ * @author zhang xin
+ */
public class AbstractServerImplBuilderInterceptor implements InstanceMethodsAroundInterceptor {
@Override
public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class>[] argumentsTypes,
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractStubInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractStubInterceptor.java
index f1c6ae6e9..556686376 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractStubInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/AbstractStubInterceptor.java
@@ -26,6 +26,11 @@ import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceC
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+/**
+ * {@link AbstractStubInterceptor} add the interceptor for each ClientCall.
+ *
+ * @author zhang xin
+ */
public class AbstractStubInterceptor implements InstanceMethodsAroundInterceptor, InstanceConstructorInterceptor {
@Override
public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/BlockingCallClientInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/BlockingCallClientInterceptor.java
index 16bc0f949..ce74a8f74 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/BlockingCallClientInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/BlockingCallClientInterceptor.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.apm.plugin.grpc.v1;
import io.grpc.Channel;
import io.grpc.ClientCall;
+import io.grpc.ForwardingClientCall;
import io.grpc.ForwardingClientCallListener;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
@@ -32,10 +33,20 @@ import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-public class BlockingCallClientInterceptor extends AbstractCallClientInterceptor {
+import static org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil.formatOperationName;
+
+/**
+ * @author zhang xin
+ */
+public class BlockingCallClientInterceptor extends ForwardingClientCall.SimpleForwardingClientCall {
+
+ private final String serviceName;
+ private final String remotePeer;
public BlockingCallClientInterceptor(ClientCall delegate, MethodDescriptor method, Channel channel) {
- super(delegate, method, channel);
+ super(delegate);
+ this.serviceName = formatOperationName(method);
+ this.remotePeer = channel.authority();
}
@Override public void start(Listener responseListener, Metadata headers) {
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/CallServerInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/CallServerInterceptor.java
index ecff56a31..18f5db858 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/CallServerInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/CallServerInterceptor.java
@@ -36,6 +36,9 @@ import org.apache.skywalking.apm.util.StringUtil;
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.STREAM_ON_NEXT_OPERATION_NAME;
+/**
+ * @author zhang xin
+ */
public class CallServerInterceptor implements ServerInterceptor {
@Override
public ServerCall.Listener interceptCall(ServerCall call, Metadata headers, ServerCallHandler handler) {
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/Constants.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/Constants.java
index cf3af11e2..e1d3bf9c8 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/Constants.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/Constants.java
@@ -18,6 +18,11 @@
package org.apache.skywalking.apm.plugin.grpc.v1;
+/**
+ * Constant variables
+ *
+ * @author zhang xin
+ */
public class Constants {
public static final String STREAM_ON_READY_OPERATION_NAME = "RequestStreamObserver/onReady";
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/GRPCClientInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/GRPCClientInterceptor.java
index e62cd40d8..29e0f047a 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/GRPCClientInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/GRPCClientInterceptor.java
@@ -24,9 +24,17 @@ import io.grpc.ClientCall;
import io.grpc.ClientInterceptor;
import io.grpc.MethodDescriptor;
+/**
+ * {@link GRPCClientInterceptor} determines the returned Interceptor based on the method type. If the method type is
+ * UNARY, {@link GRPCClientInterceptor} returns BlockingCallClientInterceptor, or it returns
+ * StreamCallClientInterceptor.
+ *
+ * @author zhang xin
+ */
public class GRPCClientInterceptor implements ClientInterceptor {
- @Override public ClientCall interceptCall(MethodDescriptor method,
+ @Override
+ public ClientCall interceptCall(MethodDescriptor method,
CallOptions callOptions, Channel channel) {
if (method.getType() != MethodDescriptor.MethodType.UNARY) {
return new StreamCallClientInterceptor(channel.newCall(method, callOptions), method, channel);
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/OperationNameFormatUtil.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/OperationNameFormatUtil.java
index dc0163b7a..e5fa97eb5 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/OperationNameFormatUtil.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/OperationNameFormatUtil.java
@@ -20,6 +20,11 @@ package org.apache.skywalking.apm.plugin.grpc.v1;
import io.grpc.MethodDescriptor;
+/**
+ * Operation Name utility
+ *
+ * @author zhangxin
+ */
public class OperationNameFormatUtil {
public static String formatOperationName(MethodDescriptor methodDescriptor) {
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/StreamCallClientInterceptor.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/StreamCallClientInterceptor.java
index eaca5010c..04ea9dc15 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/StreamCallClientInterceptor.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/StreamCallClientInterceptor.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.apm.plugin.grpc.v1;
import io.grpc.Channel;
import io.grpc.ClientCall;
+import io.grpc.ForwardingClientCall;
import io.grpc.ForwardingClientCallListener;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
@@ -35,11 +36,20 @@ import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.STREAM_ON_NEXT_OPERATION_NAME;
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.STREAM_ON_READY_OPERATION_NAME;
+import static org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil.formatOperationName;
-public class StreamCallClientInterceptor extends AbstractCallClientInterceptor {
+/**
+ * @author zhangxin
+ */
+public class StreamCallClientInterceptor extends ForwardingClientCall.SimpleForwardingClientCall {
+
+ private final String serviceName;
+ private final String remotePeer;
protected StreamCallClientInterceptor(ClientCall delegate, MethodDescriptor method, Channel channel) {
- super(delegate, method, channel);
+ super(delegate);
+ this.serviceName = formatOperationName(method);
+ this.remotePeer = channel.authority();
}
@Override
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractServerImplBuilderInstrumentation.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractServerImplBuilderInstrumentation.java
index 23a2f4cf4..0abe6d741 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractServerImplBuilderInstrumentation.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractServerImplBuilderInstrumentation.java
@@ -29,11 +29,19 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static org.apache.skywalking.apm.agent.core.plugin.bytebuddy.ArgumentTypeNameMatch.takesArgumentWithType;
import static org.apache.skywalking.apm.agent.core.plugin.match.NameMatch.byName;
+/**
+ * {@link AbstractServerImplBuilderInstrumentation} present that the GRPC plugin intercept the method
+ * addService in the {@link io.grpc.internal.AbstractServerImplBuilder} class by using the {@link
+ * org.apache.skywalking.apm.plugin.grpc.v1.AbstractServerImplBuilderInterceptor} class.
+ *
+ * @author zhang xin
+ */
public class AbstractServerImplBuilderInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
public static final String ENHANCE_CLASS = "io.grpc.internal.AbstractServerImplBuilder";
public static final String ENHANCE_METHOD = "addService";
public static final String INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.grpc.v1.AbstractServerImplBuilderInterceptor";
+ public static final String ARGUMENT_TYPE = "io.grpc.ServerServiceDefinition";
@Override protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
return new ConstructorInterceptPoint[0];
@@ -43,7 +51,7 @@ public class AbstractServerImplBuilderInstrumentation extends ClassInstanceMetho
return new InstanceMethodsInterceptPoint[] {
new InstanceMethodsInterceptPoint() {
@Override public ElementMatcher getMethodsMatcher() {
- return named(ENHANCE_METHOD).and(takesArgumentWithType(0, "io.grpc.ServerServiceDefinition"));
+ return named(ENHANCE_METHOD).and(takesArgumentWithType(0, ARGUMENT_TYPE));
}
@Override public String getMethodsInterceptor() {
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractStubInstrumentation.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractStubInstrumentation.java
index fd3f0739e..270676aa9 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractStubInstrumentation.java
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/grpc/v1/define/AbstractStubInstrumentation.java
@@ -29,6 +29,13 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
import static org.apache.skywalking.apm.agent.core.plugin.match.NameMatch.byName;
+/**
+ * {@link AbstractStubInstrumentation} present that the GRPC plugin intercept the method getChannel in the
+ * {@link io.grpc.stub.AbstractStub} class by using the {@link org.apache.skywalking.apm.plugin.grpc.v1.AbstractStubInterceptor}
+ * class.
+ *
+ * @author zhang xin
+ */
public class AbstractStubInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
public static final String INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.grpc.v1.AbstractStubInterceptor";
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallIConstructorInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallIConstructorInterceptorTest.java
deleted file mode 100644
index cf9a3358e..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallIConstructorInterceptorTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import io.grpc.MethodDescriptor;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.mock;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(MethodDescriptor.class)
-public class ClientCallIConstructorInterceptorTest {
-
- private ClientCallIConstructorInterceptor constructorInterceptor;
-
- @Mock
- private EnhancedInstance enhancedInstance;
-
- private Object[] arguments;
-
- @Before
- public void setUp() {
- constructorInterceptor = new ClientCallIConstructorInterceptor();
-
- MethodDescriptor methodDescriptor = mock(MethodDescriptor.class);
- when(methodDescriptor.getType()).thenReturn(MethodDescriptor.MethodType.UNARY);
- when(methodDescriptor.getFullMethodName()).thenReturn("test/testMethod");
-
- arguments = new Object[] {methodDescriptor};
- }
-
- @Test
- public void testOnConstructor() {
- constructorInterceptor.onConstruct(enhancedInstance, arguments);
- verify(enhancedInstance, times(1)).setSkyWalkingDynamicField(Matchers.any());
- }
-
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallOnNextInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallOnNextInterceptorTest.java
deleted file mode 100644
index 55faf4dfd..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallOnNextInterceptorTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
-import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
-import org.apache.skywalking.apm.plugin.grpc.v1.vo.GRPCDynamicFields;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class ClientCallOnNextInterceptorTest {
- @SegmentStoragePoint
- private SegmentStorage segmentStorage;
-
- @Rule
- public AgentServiceRule agentServiceRule = new AgentServiceRule();
-
- @Mock
- private EnhancedInstance clientCall;
-
- @Mock
- private GRPCDynamicFields cachedObjects;
-
- private ClientCallOnNextInterceptor callOnNextInterceptor;
-
- @Before
- public void setUp() {
- when(cachedObjects.getRequestMethodName()).thenReturn("org.skywalking.test.grpc.GreetService.sayHello");
- when(clientCall.getSkyWalkingDynamicField()).thenReturn(cachedObjects);
-
- callOnNextInterceptor = new ClientCallOnNextInterceptor();
- }
-
- @Test
- public void testCallOnNext() throws Throwable {
- callOnNextInterceptor.beforeMethod(clientCall, null, null, null, null);
- callOnNextInterceptor.afterMethod(clientCall, null, null, null, null);
-
- verify(cachedObjects, times(1)).incrementOnNextCount();
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- assertThat(SegmentHelper.getSpans(traceSegment).size(), is(1));
- AbstractTracingSpan span = SegmentHelper.getSpans(traceSegment).get(0);
- assertThat(span.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/ResponseStreamObserver/OnNext"));
- assertThat(span.isEntry(), is(false));
- assertThat(span.isExit(), is(false));
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallsMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallsMethodInterceptorTest.java
deleted file mode 100644
index 77c36ea53..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ClientCallsMethodInterceptorTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import io.grpc.MethodDescriptor;
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
-import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
-import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
-import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-import org.apache.skywalking.apm.plugin.grpc.v1.vo.GRPCDynamicFields;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class ClientCallsMethodInterceptorTest {
-
- @SegmentStoragePoint
- private SegmentStorage segmentStorage;
-
- @Rule
- public AgentServiceRule agentServiceRule = new AgentServiceRule();
-
- private ClientCallsMethodInterceptor clientCallStartInterceptor;
-
- @Mock
- private EnhancedInstance clientCallImpl;
-
- @Mock
- private EnhancedInstance clientCallListener;
-
- @Mock
- private GRPCDynamicFields unaryCachedObjects;
-
- @Mock
- private GRPCDynamicFields streamCachedObjects;
-
- private Object[] arguments;
- private Class[] argumentTypes;
-
- @Before
- public void setUp() {
- when(unaryCachedObjects.getRequestMethodName()).thenReturn("org.skywalking.test.grpc.GreetService.sayHello");
- when(unaryCachedObjects.getAuthority()).thenReturn("localhost:500051");
- when(unaryCachedObjects.getMethodType()).thenReturn(MethodDescriptor.MethodType.UNARY);
-
- when(streamCachedObjects.getRequestMethodName()).thenReturn("org.skywalking.test.grpc.GreetService.sayHello");
- when(streamCachedObjects.getAuthority()).thenReturn("localhost:500051");
- when(streamCachedObjects.getMethodType()).thenReturn(MethodDescriptor.MethodType.SERVER_STREAMING);
-
- arguments = new Object[] {clientCallImpl, clientCallListener};
- argumentTypes = new Class[] {clientCallImpl.getClass(), clientCallListener.getClass()};
-
- clientCallStartInterceptor = new ClientCallsMethodInterceptor();
- }
-
- @Test
- public void testNormalUnaryCallStart() throws Throwable {
- when(clientCallImpl.getSkyWalkingDynamicField()).thenReturn(unaryCachedObjects);
-
- clientCallStartInterceptor.beforeMethod(null, null, arguments, argumentTypes, null);
- clientCallStartInterceptor.afterMethod(null, null, arguments, argumentTypes, null);
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- assertThat(SegmentHelper.getSpans(traceSegment).size(), is(1));
- AbstractTracingSpan abstractTracingSpan = SegmentHelper.getSpans(traceSegment).get(0);
- SpanAssert.assertComponent(abstractTracingSpan, ComponentsDefine.GRPC);
- SpanAssert.assertLayer(abstractTracingSpan, SpanLayer.RPC_FRAMEWORK);
- SpanAssert.assertOccurException(abstractTracingSpan, false);
- }
-
- @Test
- public void testNormalStreamCallStart() throws Throwable {
- when(clientCallImpl.getSkyWalkingDynamicField()).thenReturn(streamCachedObjects);
-
- clientCallStartInterceptor.beforeMethod(null, null, arguments, argumentTypes, null);
- clientCallStartInterceptor.afterMethod(null, null, arguments, argumentTypes, null);
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- assertThat(SegmentHelper.getSpans(traceSegment).size(), is(1));
- AbstractTracingSpan abstractTracingSpan = SegmentHelper.getSpans(traceSegment).get(0);
- SpanAssert.assertComponent(abstractTracingSpan, ComponentsDefine.GRPC);
- SpanAssert.assertLayer(abstractTracingSpan, SpanLayer.RPC_FRAMEWORK);
- SpanAssert.assertOccurException(abstractTracingSpan, false);
- }
-
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallHandlerInterceptorTest.java
deleted file mode 100644
index b447d9d1e..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallHandlerInterceptorTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import io.grpc.Metadata;
-import io.grpc.MethodDescriptor;
-import io.grpc.ServerCall;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(MethodDescriptor.class)
-public class ServerCallHandlerInterceptorTest {
- @Mock
- private EnhancedInstance enhancedInstance;
-
- private ServerCallHandlerInterceptor callHandlerInterceptor;
-
- @Mock
- private ServerCall serverCall;
- @Mock
- private MethodDescriptor methodDescriptor;
-
- private Metadata metadata;
-
- private Object[] arguments;
- private Class[] argumentTypes;
-
- @Before
- public void setUp() {
- when(methodDescriptor.getFullMethodName()).thenReturn("org.skywalking.test.GreetService/SayHello");
- when(serverCall.getMethodDescriptor()).thenReturn(methodDescriptor);
-
- callHandlerInterceptor = new ServerCallHandlerInterceptor();
- metadata = new Metadata();
- arguments = new Object[] {serverCall, metadata};
- argumentTypes = new Class[] {serverCall.getClass(), metadata.getClass()};
- }
-
- @Test
- public void testSetCachedObjects() throws Throwable {
- callHandlerInterceptor.afterMethod(null, null, arguments, argumentTypes, enhancedInstance);
- verify(enhancedInstance, times(1)).setSkyWalkingDynamicField(Matchers.any());
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnMessageInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnMessageInterceptorTest.java
deleted file mode 100644
index db40c1af1..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnMessageInterceptorTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
-import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
-import org.apache.skywalking.apm.plugin.grpc.v1.vo.GRPCDynamicFields;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class ServerCallOnMessageInterceptorTest {
-
- @SegmentStoragePoint
- private SegmentStorage segmentStorage;
-
- @Rule
- public AgentServiceRule agentServiceRule = new AgentServiceRule();
-
- @Mock
- private EnhancedInstance clientCall;
-
- @Mock
- private GRPCDynamicFields cachedObjects;
-
- private ServerCallOnMessageInterceptor serverCallOnMessageInterceptor;
-
- @Before
- public void setUp() {
- when(cachedObjects.getRequestMethodName()).thenReturn("org.skywalking.test.grpc.GreetService.sayHello");
- when(clientCall.getSkyWalkingDynamicField()).thenReturn(cachedObjects);
-
- serverCallOnMessageInterceptor = new ServerCallOnMessageInterceptor();
- }
-
- @Test
- public void testCallOnNext() throws Throwable {
- serverCallOnMessageInterceptor.beforeMethod(clientCall, null, null, null, null);
- serverCallOnMessageInterceptor.afterMethod(clientCall, null, null, null, null);
-
- verify(cachedObjects, times(1)).incrementOnNextCount();
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- assertThat(SegmentHelper.getSpans(traceSegment).size(), is(1));
- AbstractTracingSpan span = SegmentHelper.getSpans(traceSegment).get(0);
- assertThat(span.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/ResponseStreamObserver/OnNext"));
- assertThat(span.isEntry(), is(false));
- assertThat(span.isExit(), is(false));
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnReadyInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnReadyInterceptorTest.java
deleted file mode 100644
index 2991ddd6d..000000000
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/grpc/v1/ServerCallOnReadyInterceptorTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.plugin.grpc.v1;
-
-import io.grpc.Metadata;
-import io.grpc.MethodDescriptor;
-import org.apache.skywalking.apm.agent.test.tools.SegmentRefAssert;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
-import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.apache.skywalking.apm.agent.test.helper.SpanHelper;
-import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
-import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
-import org.apache.skywalking.apm.plugin.grpc.v1.vo.GRPCDynamicFields;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class ServerCallOnReadyInterceptorTest {
-
- @SegmentStoragePoint
- private SegmentStorage segmentStorage;
-
- @Rule
- public AgentServiceRule agentServiceRule = new AgentServiceRule();
-
- @Mock
- private EnhancedInstance enhancedInstance;
-
- private GRPCDynamicFields cachedObjects;
-
- @Mock
- private MethodDescriptor.Marshaller requestMarshaller;
- @Mock
- private MethodDescriptor.Marshaller responseMarshaller;
-
- private ServerCallOnReadyInterceptor serverCallOnReadyInterceptor;
-
- private ServerCallOnCloseInterceptor serverCallOnCloseInterceptor;
-
- private ServerCallOnMessageInterceptor serverCallOnMessageInterceptor;
-
- @Before
- public void setUp() {
- cachedObjects = new GRPCDynamicFields();
- cachedObjects.setDescriptor(MethodDescriptor.create(MethodDescriptor.MethodType.SERVER_STREAMING, "org.skywalking.test.grpc.GreetService/SayHello", requestMarshaller, responseMarshaller));
- when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn(cachedObjects);
-
- serverCallOnReadyInterceptor = new ServerCallOnReadyInterceptor();
- serverCallOnCloseInterceptor = new ServerCallOnCloseInterceptor();
- serverCallOnMessageInterceptor = new ServerCallOnMessageInterceptor();
- }
-
- @Test
- public void testOnReadyWithoutContextCarrier() throws Throwable {
- cachedObjects.setMetadata(new Metadata());
- serverCallOnReadyInterceptor.beforeMethod(enhancedInstance, null, null, null, null);
- serverCallOnMessageInterceptor.beforeMethod(enhancedInstance, null, null, null, null);
- serverCallOnMessageInterceptor.afterMethod(enhancedInstance, null, null, null, null);
- serverCallOnCloseInterceptor.afterMethod(enhancedInstance, null, null, null, null);
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment segment = segmentStorage.getTraceSegments().get(0);
-
- assertThat(segment.getRefs() == null, is(true));
-
- assertThat(SegmentHelper.getSpans(segment).size(), is(2));
- AbstractTracingSpan abstractTracingSpan = SegmentHelper.getSpans(segment).get(0);
- assertThat(abstractTracingSpan.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/ResponseStreamObserver/OnNext"));
-
- abstractTracingSpan = SegmentHelper.getSpans(segment).get(1);
- assertThat(abstractTracingSpan.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/StreamCall"));
- assertThat(abstractTracingSpan.isEntry(), is(true));
- assertThat(SpanHelper.getTags(abstractTracingSpan).size(), is(1));
- assertThat(SpanHelper.getTags(abstractTracingSpan).get(0).getKey(), is("onNext.count"));
- assertThat(SpanHelper.getTags(abstractTracingSpan).get(0).getValue(), is("1"));
- }
-
- @Test
- public void testOnReadyWithContextCarrier() throws Throwable {
- Metadata metadata = new Metadata();
- metadata.put(Metadata.Key.of("sw3", Metadata.ASCII_STRING_MARSHALLER), "1.234.111|3|1|1|#192.168.1.100:50051|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
- cachedObjects.setMetadata(metadata);
- serverCallOnReadyInterceptor.beforeMethod(enhancedInstance, null, null, null, null);
- serverCallOnMessageInterceptor.beforeMethod(enhancedInstance, null, null, null, null);
- serverCallOnMessageInterceptor.afterMethod(enhancedInstance, null, null, null, null);
- serverCallOnCloseInterceptor.afterMethod(enhancedInstance, null, null, null, null);
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment segment = segmentStorage.getTraceSegments().get(0);
-
- assertThat(segment.getRefs() != null, is(true));
- SegmentRefAssert.assertPeerHost(segment.getRefs().get(0), "192.168.1.100:50051");
- SegmentRefAssert.assertEntryApplicationInstanceId(segment.getRefs().get(0), 1);
- SegmentRefAssert.assertSpanId(segment.getRefs().get(0), 3);
- SegmentRefAssert.assertSegmentId(segment.getRefs().get(0), "1.234.111");
-
- assertThat(SegmentHelper.getSpans(segment).size(), is(2));
- AbstractTracingSpan abstractTracingSpan = SegmentHelper.getSpans(segment).get(0);
- assertThat(abstractTracingSpan.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/ResponseStreamObserver/OnNext"));
-
- abstractTracingSpan = SegmentHelper.getSpans(segment).get(1);
- assertThat(abstractTracingSpan.getOperationName(), is("org.skywalking.test.grpc.GreetService.sayHello/StreamCall"));
- assertThat(abstractTracingSpan.isEntry(), is(true));
- assertThat(SpanHelper.getTags(abstractTracingSpan).size(), is(1));
- assertThat(SpanHelper.getTags(abstractTracingSpan).get(0).getKey(), is("onNext.count"));
- assertThat(SpanHelper.getTags(abstractTracingSpan).get(0).getValue(), is("1"));
- }
-}