diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java index ebc1cf755195de54f2e3080d99e0ae2156a09778..a5d4aa96859e303424712d962f6f1b6c56a5b0fb 100644 --- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java @@ -5,6 +5,8 @@ import com.alibaba.dubbo.rpc.Invocation; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.Result; import com.alibaba.dubbo.rpc.RpcContext; +import java.lang.reflect.Field; +import java.util.List; import org.hamcrest.CoreMatchers; import org.junit.After; import org.junit.Assert; @@ -25,6 +27,8 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptR import org.skywalking.apm.plugin.dubbox.BugFixActive; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -39,7 +43,7 @@ import static org.powermock.api.mockito.PowerMockito.mockStatic; import static org.powermock.api.mockito.PowerMockito.when; @RunWith(PowerMockRunner.class) -@PrepareForTest( {RpcContext.class, BugFixActive.class}) +@PrepareForTest({RpcContext.class, BugFixActive.class}) public class DubboInterceptorTest { private MockTracerContextListener mockTracerContextListener; @@ -172,12 +176,13 @@ public class DubboInterceptorTest { assertProvider(); } - private void assertConsumerTraceSegmentInErrorCase(TraceSegment traceSegment) { + private void assertConsumerTraceSegmentInErrorCase( + TraceSegment traceSegment) { assertThat(traceSegment.getSpans().size(), is(1)); assertConsumerSpan(traceSegment.getSpans().get(0)); Span span = traceSegment.getSpans().get(0); - assertThat(span.getLogs().size(), is(1)); - assertErrorLog(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertErrorLog(SpanLogReader.getLogs(span).get(0)); } private void assertErrorLog(LogData logData) { @@ -210,18 +215,18 @@ public class DubboInterceptorTest { private void assertProviderSpan(Span span) { assertCommonsAttribute(span); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_SERVER)); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_SERVER)); } private void assertConsumerSpan(Span span) { assertCommonsAttribute(span); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_CLIENT)); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_CLIENT)); } private void assertCommonsAttribute(Span span) { - assertThat(Tags.SPAN_LAYER.isRPCFramework(span), is(true)); - assertThat(Tags.COMPONENT.get(span), is(DubboInterceptor.DUBBO_COMPONENT)); - assertThat(Tags.URL.get(span), is("dubbo://127.0.0.1:20880/org.skywalking.apm.test.TestDubboService.test(String)")); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("rpc")); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is(DubboInterceptor.DUBBO_COMPONENT)); + assertThat(StringTagReader.get(span, Tags.URL), is("dubbo://127.0.0.1:20880/org.skywalking.apm.test.TestDubboService.test(String)")); assertThat(span.getOperationName(), is("org.skywalking.apm.test.TestDubboService.test(String)")); } @@ -229,5 +234,4 @@ public class DubboInterceptorTest { public void tearDown() throws Exception { TracerContext.ListenerManager.remove(mockTracerContextListener); } - } diff --git a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java index 3d9200e4ecefa8e9773728992414aa37cda3b0d1..ca3052ca3f56b49c5621c77f148f2111cdddd649 100644 --- a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/src/test/java/org/skywalking/apm/plugin/feign/http/v9/DefaultHttpClientInterceptorTest.java @@ -19,6 +19,9 @@ import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceCon import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.BooleanTagReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; import org.skywalking.apm.trace.tag.Tags; @@ -76,7 +79,7 @@ public class DefaultHttpClientInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(false, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(false, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); } }); } @@ -94,19 +97,19 @@ public class DefaultHttpClientInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(true, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(true, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); } }); } private void assertSpan(Span span) { - Assert.assertEquals("http", Tags.SPAN_LAYER.get(span)); - Assert.assertEquals("GET", Tags.HTTP.METHOD.get(span)); - Assert.assertEquals("skywalking.org", Tags.PEER_HOST.get(span)); - Assert.assertEquals(-1, Tags.PEER_PORT.get(span).intValue()); - Assert.assertEquals("FeignDefaultHttp", Tags.COMPONENT.get(span)); - Assert.assertEquals("client", Tags.SPAN_KIND.get(span)); - Assert.assertEquals("", Tags.URL.get(span)); + Assert.assertEquals("http", StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG)); + Assert.assertEquals("GET", StringTagReader.get(span, Tags.HTTP.METHOD)); + Assert.assertEquals("skywalking.org", span.getPeerHost()); + Assert.assertEquals(-1, span.getPort()); + Assert.assertEquals("FeignDefaultHttp", StringTagReader.get(span, Tags.COMPONENT)); + Assert.assertEquals("client", StringTagReader.get(span, Tags.SPAN_KIND)); + Assert.assertEquals("", StringTagReader.get(span, Tags.URL)); } @Test @@ -124,11 +127,11 @@ public class DefaultHttpClientInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(true, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(true, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); - Assert.assertEquals(1, finishedSegment.getSpans().get(0).getLogs().size()); - Assert.assertEquals(true, finishedSegment.getSpans().get(0).getLogs().get(0).getFields().containsKey("stack")); - Assert.assertEquals("testException", finishedSegment.getSpans().get(0).getLogs().get(0).getFields().get("message")); + Assert.assertEquals(1, SpanLogReader.getLogs(finishedSegment.getSpans().get(0)).size()); + Assert.assertEquals(true, SpanLogReader.getLogs(finishedSegment.getSpans().get(0)).get(0).getFields().containsKey("stack")); + Assert.assertEquals("testException", SpanLogReader.getLogs(finishedSegment.getSpans().get(0)).get(0).getFields().get("message")); } }); } diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java index 3b882d633277e12d941bec689304caa7ff5804b5..94f8f01670fef3b339c1260597e2e3465f2275dc 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptor.java @@ -67,8 +67,8 @@ public class MongoDBMethodInterceptor implements InstanceMethodsAroundIntercepto public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) { Span span = ContextManager.activeSpan(); - span.setPeerHost(context.get(MONGODB_HOST, String.class)); - span.setPort(context.get(MONGODB_PORT, Integer.class)); + span.setPeerHost((String)context.get(MONGODB_HOST)); + span.setPort((Integer)context.get(MONGODB_PORT)); ContextManager.stopSpan(); return ret; } diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java index 782340fff0f265ec744cb2b8bbea91cecd68d155..7dc2c1b704105af7bb5115769cac1c215b7a3d43 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBMethodInterceptorTest.java @@ -21,6 +21,8 @@ import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceCon import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -53,7 +55,7 @@ public class MongoDBMethodInterceptorTest { Config.Plugin.MongoDB.TRACE_PARAM = true; - when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_HOST, String.class)).thenReturn("127.0.0.1"); + when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_HOST)).thenReturn("127.0.0.1"); when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_PORT)).thenReturn(27017); when(methodInvokeContext.methodName()).thenReturn("find"); @@ -96,8 +98,8 @@ public class MongoDBMethodInterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertRedisSpan(span); - assertThat(span.getLogs().size(), is(1)); - assertLogData(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertLogData(SpanLogReader.getLogs(span).get(0)); } }); } @@ -111,12 +113,12 @@ public class MongoDBMethodInterceptorTest { private void assertRedisSpan(Span span) { assertThat(span.getOperationName(), is("MongoDB/FindOperation")); - assertThat(Tags.PEER_HOST.get(span), is("127.0.0.1")); - assertThat(Tags.PEER_PORT.get(span), is(27017)); - assertThat(Tags.COMPONENT.get(span), is("MongoDB")); - assertThat(Tags.DB_STATEMENT.get(span), is("FindOperation { \"name\" : \"by\" }")); - assertThat(Tags.DB_TYPE.get(span), is("MongoDB")); - assertTrue(Tags.SPAN_LAYER.isDB(span)); + assertThat(span.getPeerHost(), is("127.0.0.1")); + assertThat(span.getPort(), is(27017)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("MongoDB")); + assertThat(StringTagReader.get(span, Tags.DB_STATEMENT), is("FindOperation { \"name\" : \"by\" }")); + assertThat(StringTagReader.get(span, Tags.DB_TYPE), is("MongoDB")); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("db")); } @After diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java index 083fa0fcb7f208077d7f9077fce6936cbbc6a115..a251ef2cf6a3cacc1c8648456deab2209f49df91 100644 --- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/test/java/org/skywalking/apm/plugin/mongodb/v3/MongoDBWriteMethodInterceptorTest.java @@ -22,6 +22,8 @@ import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceCon import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -56,7 +58,7 @@ public class MongoDBWriteMethodInterceptorTest { Config.Plugin.MongoDB.TRACE_PARAM = true; - when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_HOST, String.class)).thenReturn("127.0.0.1"); + when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_HOST)).thenReturn("127.0.0.1"); when(classInstanceContext.get(MongoDBMethodInterceptor.MONGODB_PORT)).thenReturn(27017); when(methodInvokeContext.methodName()).thenReturn("find"); @@ -96,12 +98,12 @@ public class MongoDBWriteMethodInterceptorTest { private void assertRedisSpan(Span span) { assertThat(span.getOperationName(), is("MongoDB/DeleteOperation")); - assertThat(Tags.PEER_HOST.get(span), is("127.0.0.1")); - assertThat(Tags.PEER_PORT.get(span), is(27017)); - assertThat(Tags.COMPONENT.get(span), is("MongoDB")); - assertThat(Tags.DB_STATEMENT.get(span), is("DeleteOperation { \"name\" : \"by\" },")); - assertThat(Tags.DB_TYPE.get(span), is("MongoDB")); - assertTrue(Tags.SPAN_LAYER.isDB(span)); + assertThat(span.getPeerHost(), is("127.0.0.1")); + assertThat(span.getPort(), is(27017)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("MongoDB")); + assertThat(StringTagReader.get(span, Tags.DB_STATEMENT), is("DeleteOperation { \"name\" : \"by\" },")); + assertThat(StringTagReader.get(span, Tags.DB_TYPE), is("MongoDB")); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("db")); } @Test @@ -117,8 +119,8 @@ public class MongoDBWriteMethodInterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertRedisSpan(span); - assertThat(span.getLogs().size(), is(1)); - assertLogData(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertLogData(SpanLogReader.getLogs(span).get(0)); } }); } diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java index a710cf25a712b44cbc12e4f9b3c46449d40c479a..3c1e5cc755f5d94e8e5f5a8858474ce8a7c36fb7 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanConsumerInterceptorTest.java @@ -17,6 +17,8 @@ import org.skywalking.apm.agent.core.plugin.interceptor.EnhancedClassInstanceCon import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -97,8 +99,8 @@ public class MotanConsumerInterceptorTest { Span span = traceSegment.getSpans().get(0); assertMotanConsumerSpan(span); verify(request, times(1)).setAttachment(anyString(), anyString()); - assertThat(span.getLogs().size(), is(1)); - LogData logData = span.getLogs().get(0); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + LogData logData = SpanLogReader.getLogs(span).get(0); assertLogData(logData); } }); @@ -124,12 +126,12 @@ public class MotanConsumerInterceptorTest { private void assertMotanConsumerSpan(Span span) { assertThat(span.getOperationName(), is("org.skywalking.apm.test.TestService.test(java.lang.String, java.lang.Object)")); - assertThat(Tags.COMPONENT.get(span), is("Motan")); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_CLIENT)); - assertThat(Tags.PEER_HOST.get(span), is("127.0.0.1")); - assertThat(Tags.PEER_PORT.get(span), is(34000)); - assertTrue(Tags.SPAN_LAYER.isRPCFramework(span)); - assertThat(Tags.URL.get(span), is("motan://127.0.0.1:34000/default_rpc/org.skywalking.apm.test.TestService/1.0/service")); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("Motan")); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_CLIENT)); + assertThat(span.getPeerHost(), is("127.0.0.1")); + assertThat(span.getPort(), is(34000)); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("rpc")); + assertThat(StringTagReader.get(span, Tags.URL), is("motan://127.0.0.1:34000/default_rpc/org.skywalking.apm.test.TestService/1.0/service")); } @After diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java index 5ff94b1bf6bb8d5de252a1c94c056c5f634964ab..0b3b3b454af8bd29cb639989ea898ab65770368d 100644 --- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java @@ -18,6 +18,8 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvok import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -133,8 +135,8 @@ public class MotanProviderInterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertMotanProviderSpan(span); - assertThat(span.getLogs().size(), is(1)); - LogData logData = span.getLogs().get(0); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + LogData logData = SpanLogReader.getLogs(span).get(0); assertLogData(logData); } }); @@ -155,9 +157,9 @@ public class MotanProviderInterceptorTest { private void assertMotanProviderSpan(Span span) { assertThat(span.getOperationName(), is("org.skywalking.apm.test.TestService.test(java.lang.String, java.lang.Object)")); - assertThat(Tags.COMPONENT.get(span), is("Motan")); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_SERVER)); - assertTrue(Tags.SPAN_LAYER.isRPCFramework(span)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("Motan")); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_SERVER)); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("rpc")); } @After diff --git a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java index 46a3b774c8871217a74ab579c5d72db557798309..efcf5106479ab4614bc9733401e076df5aa02cae 100644 --- a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/src/test/java/org/skywalking/apm/plugin/okhttp/v3/RealCallInterceptorTest.java @@ -17,6 +17,9 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInvok import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodInvokeContext; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.BooleanTagReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; import org.skywalking.apm.trace.tag.Tags; @@ -83,7 +86,7 @@ public class RealCallInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(false, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(false, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); } }); } @@ -102,19 +105,19 @@ public class RealCallInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(true, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(true, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); } }); } private void assertSpan(Span span) { - Assert.assertEquals("http", Tags.SPAN_LAYER.get(span)); - Assert.assertEquals("GET", Tags.HTTP.METHOD.get(span)); - Assert.assertEquals("skywalking.org", Tags.PEER_HOST.get(span)); - Assert.assertEquals(80, Tags.PEER_PORT.get(span).intValue()); - Assert.assertEquals("OKHttp", Tags.COMPONENT.get(span)); - Assert.assertEquals("client", Tags.SPAN_KIND.get(span)); - Assert.assertEquals("/", Tags.URL.get(span)); + Assert.assertEquals("http", StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG)); + Assert.assertEquals("GET", StringTagReader.get(span, Tags.HTTP.METHOD)); + Assert.assertEquals("skywalking.org", span.getPeerHost()); + Assert.assertEquals(80, span.getPort()); + Assert.assertEquals("OKHttp", StringTagReader.get(span, Tags.COMPONENT)); + Assert.assertEquals("client", StringTagReader.get(span, Tags.SPAN_KIND)); + Assert.assertEquals("/", StringTagReader.get(span, Tags.URL)); } @Test @@ -133,10 +136,10 @@ public class RealCallInterceptorTest { @Override public void call(TraceSegment finishedSegment) { Assert.assertEquals(1, finishedSegment.getSpans().size()); assertSpan(finishedSegment.getSpans().get(0)); - Assert.assertEquals(true, Tags.ERROR.get(finishedSegment.getSpans().get(0))); + Assert.assertEquals(true, BooleanTagReader.get(finishedSegment.getSpans().get(0), Tags.ERROR)); - Assert.assertEquals(1, finishedSegment.getSpans().get(0).getLogs().size()); - Assert.assertEquals(true, finishedSegment.getSpans().get(0).getLogs().get(0).getFields().containsKey("stack")); + Assert.assertEquals(1, SpanLogReader.getLogs(finishedSegment.getSpans().get(0)).size()); + Assert.assertEquals(true, SpanLogReader.getLogs(finishedSegment.getSpans().get(0)).get(0).getFields().containsKey("stack")); } }); } diff --git a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java index 74eac366863577fe11044de4cd35941188b3b40d..a0b599a6fc68d568b55881a59f4cec3b8dc2b312 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/resin-3.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v3/ResinV3InterceptorTest.java @@ -16,6 +16,9 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodIn import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.IntTagReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -116,8 +119,8 @@ public class ResinV3InterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertHttpSpan(span); - assertThat(span.getLogs().size(), is(1)); - assertSpanLog(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertSpanLog(SpanLogReader.getLogs(span).get(0)); } }); } @@ -136,11 +139,11 @@ public class ResinV3InterceptorTest { private void assertHttpSpan(Span span) { assertThat(span.getOperationName(), is("/test/testRequestURL")); - assertThat(Tags.COMPONENT.get(span), is("Resin")); - assertThat(Tags.URL.get(span), is("http://localhost:8080/test/testRequestURL")); - assertThat(Tags.STATUS_CODE.get(span), is(200)); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_SERVER)); - assertTrue(Tags.SPAN_LAYER.isHttp(span)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("Resin")); + assertThat(StringTagReader.get(span, Tags.URL), is("http://localhost:8080/test/testRequestURL")); + assertThat(IntTagReader.get(span, Tags.STATUS_CODE), is(200)); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_SERVER)); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("http")); } @After diff --git a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java index c1dd0c026d51973626f10f030f0feada95a86bab..0801085b65ba96556ac3ec56646f72c7827ee18f 100644 --- a/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/resin-4.x-plugin/src/test/java/org/skywalking/apm/plugin/resin/v4/ResinV4InterceptorTest.java @@ -16,6 +16,9 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodIn import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.IntTagReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; @@ -115,8 +118,8 @@ public class ResinV4InterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertHttpSpan(span); - assertThat(span.getLogs().size(), is(1)); - assertSpanLog(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertSpanLog(SpanLogReader.getLogs(span).get(0)); } }); } @@ -135,11 +138,11 @@ public class ResinV4InterceptorTest { private void assertHttpSpan(Span span) { assertThat(span.getOperationName(), is("/test/testRequestURL")); - assertThat(Tags.COMPONENT.get(span), is("Resin")); - assertThat(Tags.URL.get(span), is("http://localhost:8080/test/testRequestURL")); - assertThat(Tags.STATUS_CODE.get(span), is(200)); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_SERVER)); - assertTrue(Tags.SPAN_LAYER.isHttp(span)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("Resin")); + assertThat(StringTagReader.get(span, Tags.URL), is("http://localhost:8080/test/testRequestURL")); + assertThat(IntTagReader.get(span, Tags.STATUS_CODE), is(200)); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_SERVER)); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("http")); } @After diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java index 39bdd4d07f9364398830f605592ff03ee98f7656..1749584e10047e80147493e99e720d913a45c998 100644 --- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/skywalking/apm/plugin/tomcat78x/TomcatInterceptorTest.java @@ -1,5 +1,7 @@ package org.skywalking.apm.plugin.tomcat78x; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.hamcrest.CoreMatchers; import org.junit.After; import org.junit.Before; @@ -14,19 +16,18 @@ import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodIn import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener; import org.skywalking.apm.sniffer.mock.context.SegmentAssert; +import org.skywalking.apm.sniffer.mock.trace.SpanLogReader; +import org.skywalking.apm.sniffer.mock.trace.tags.IntTagReader; +import org.skywalking.apm.sniffer.mock.trace.tags.StringTagReader; import org.skywalking.apm.trace.LogData; import org.skywalking.apm.trace.Span; import org.skywalking.apm.trace.TraceSegment; import org.skywalking.apm.trace.TraceSegmentRef; import org.skywalking.apm.trace.tag.Tags; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) @@ -110,8 +111,8 @@ public class TomcatInterceptorTest { assertThat(traceSegment.getSpans().size(), is(1)); Span span = traceSegment.getSpans().get(0); assertHttpSpan(span); - assertThat(span.getLogs().size(), is(1)); - assertSpanLog(span.getLogs().get(0)); + assertThat(SpanLogReader.getLogs(span).size(), is(1)); + assertSpanLog(SpanLogReader.getLogs(span).get(0)); } }); } @@ -130,16 +131,15 @@ public class TomcatInterceptorTest { private void assertHttpSpan(Span span) { assertThat(span.getOperationName(), is("/test/testRequestURL")); - assertThat(Tags.COMPONENT.get(span), is("Tomcat")); - assertThat(Tags.URL.get(span), is("http://localhost:8080/test/testRequestURL")); - assertThat(Tags.STATUS_CODE.get(span), is(200)); - assertThat(Tags.SPAN_KIND.get(span), is(Tags.SPAN_KIND_SERVER)); - assertTrue(Tags.SPAN_LAYER.isHttp(span)); + assertThat(StringTagReader.get(span, Tags.COMPONENT), is("Tomcat")); + assertThat(StringTagReader.get(span, Tags.URL), is("http://localhost:8080/test/testRequestURL")); + assertThat(IntTagReader.get(span, Tags.STATUS_CODE), is(200)); + assertThat(StringTagReader.get(span, Tags.SPAN_KIND), is(Tags.SPAN_KIND_SERVER)); + assertThat(StringTagReader.get(span, Tags.SPAN_LAYER.SPAN_LAYER_TAG), is("http")); } @After public void tearDown() throws Exception { TracerContext.ListenerManager.remove(new MockTracerContextListener()); } - } diff --git a/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/SpanLogReader.java b/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/SpanLogReader.java new file mode 100644 index 0000000000000000000000000000000000000000..c7cbfc0bdd6a09b4543aeaf8e21a8986b1df213b --- /dev/null +++ b/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/SpanLogReader.java @@ -0,0 +1,26 @@ +package org.skywalking.apm.sniffer.mock.trace; + +import java.lang.reflect.Field; +import java.util.List; +import org.skywalking.apm.trace.LogData; +import org.skywalking.apm.trace.Span; + +/** + * @author wusheng + */ +public class SpanLogReader { + public static List getLogs(Span span) { + Field logs = null; + try { + logs = Span.class.getDeclaredField("logs"); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + logs.setAccessible(true); + try { + return (List)logs.get(span); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/tags/BooleanTagReader.java b/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/tags/BooleanTagReader.java index 12a60e8cc576c7a5bb5f9af6b1649d96a3bc692e..ec6d9ff67a6f3df2a75897c2427f804d668ac629 100644 --- a/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/tags/BooleanTagReader.java +++ b/apm-sniffer/apm-sniffer-mock/src/main/java/org/skywalking/apm/sniffer/mock/trace/tags/BooleanTagReader.java @@ -22,9 +22,11 @@ public class BooleanTagReader { e.printStackTrace(); } - for (BooleanTagItem item : tagsWithBoolList) { - if (tag.key().equals(item.getKey())) { - return item.getValue(); + if (tagsWithBoolList != null) { + for (BooleanTagItem item : tagsWithBoolList) { + if (tag.key().equals(item.getKey())) { + return item.getValue(); + } } } return tag.defaultValue();