diff --git a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java index 163371a1b..d31a16d94 100755 --- a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java +++ b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java @@ -166,4 +166,6 @@ public class ComponentsDefine { public static final OfficialComponent BRPC_JAVA = new OfficialComponent(91, "brpc-java"); public static final OfficialComponent GRAPHQL = new OfficialComponent(92, "GraphQL"); + + public static final OfficialComponent SPRING_ANNOTATION = new OfficialComponent(93, "spring-annotation"); } diff --git a/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/annotations/SpringAnnotationInterceptor.java b/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/annotations/SpringAnnotationInterceptor.java index fcb4ca97e..60c5702bd 100644 --- a/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/annotations/SpringAnnotationInterceptor.java +++ b/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/annotations/SpringAnnotationInterceptor.java @@ -20,16 +20,19 @@ package org.apache.skywalking.apm.plugin.spring.annotations; import java.lang.reflect.Method; import org.apache.skywalking.apm.agent.core.context.ContextManager; +import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; +import org.apache.skywalking.apm.network.trace.component.ComponentsDefine; public class SpringAnnotationInterceptor implements InstanceMethodsAroundInterceptor { @Override public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, MethodInterceptResult result) throws Throwable { String operationName = objInst.getClass().getName() + "." + method.getName(); - ContextManager.createLocalSpan(operationName); + AbstractSpan span = ContextManager.createLocalSpan(operationName); + span.setComponent(ComponentsDefine.SPRING_ANNOTATION); } @Override diff --git a/oap-server/server-bootstrap/src/main/resources/component-libraries.yml b/oap-server/server-bootstrap/src/main/resources/component-libraries.yml index 4dea612c8..2c6d840a6 100755 --- a/oap-server/server-bootstrap/src/main/resources/component-libraries.yml +++ b/oap-server/server-bootstrap/src/main/resources/component-libraries.yml @@ -308,6 +308,9 @@ brpc-java: GraphQL: id: 92 languages: Java +spring-annotation: + id: 93 + languages: Java # .NET/.NET Core components # [3000, 4000) for C#/.NET only diff --git a/test/plugin/scenarios/spring-3.0.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/spring-3.0.x-scenario/config/expectedData.yaml index 13d65b0da..37407a4a5 100644 --- a/test/plugin/scenarios/spring-3.0.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/spring-3.0.x-scenario/config/expectedData.yaml @@ -38,15 +38,15 @@ segmentItems: spans: - {operationName: test.org.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod, operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff, operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness, operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - operationName: /case/spring3 operationId: 0 diff --git a/test/plugin/scenarios/spring-3.1.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/spring-3.1.x-scenario/config/expectedData.yaml index 95cd1e52b..13cddd75b 100644 --- a/test/plugin/scenarios/spring-3.1.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/spring-3.1.x-scenario/config/expectedData.yaml @@ -38,15 +38,15 @@ segmentItems: spans: - {operationName: test.org.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod, operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff, operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness, operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - operationName: /case/spring3 operationId: 0 diff --git a/test/plugin/scenarios/spring-4.1.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/spring-4.1.x-scenario/config/expectedData.yaml index d3ccdc639..38ead2777 100644 --- a/test/plugin/scenarios/spring-4.1.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/spring-4.1.x-scenario/config/expectedData.yaml @@ -38,15 +38,15 @@ segmentItems: spans: - {operationName: test.org.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod, operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff, operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness, operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - operationName: /case/spring3 operationId: 0 diff --git a/test/plugin/scenarios/spring-4.3.x-scenario/config/expectedData.yaml b/test/plugin/scenarios/spring-4.3.x-scenario/config/expectedData.yaml index 986697be6..7961509d1 100644 --- a/test/plugin/scenarios/spring-4.3.x-scenario/config/expectedData.yaml +++ b/test/plugin/scenarios/spring-4.3.x-scenario/config/expectedData.yaml @@ -38,15 +38,15 @@ segmentItems: spans: - {operationName: test.org.apache.skywalking.apm.testcase.spring3.component.TestComponentBean.componentMethod, operationId: 0, parentSpanId: 1, spanId: 2, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.dao.TestRepositoryBean.doSomeStuff, operationId: 0, parentSpanId: 1, spanId: 3, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - {operationName: test.org.apache.skywalking.apm.testcase.spring3.service.TestServiceBean.doSomeBusiness, operationId: 0, parentSpanId: 0, spanId: 1, spanLayer: Unknown, startTime: nq - 0, endTime: nq 0, componentId: 0, isError: false, spanType: Local, peer: '', + 0, endTime: nq 0, componentId: 93, isError: false, spanType: Local, peer: '', skipAnalysis: 'false'} - operationName: /case/spring3 operationId: 0