diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java index b4aab258f7b05c3874125c880cb9bbe9d88b33d8..bd1217ea3f22762a29bd2ae5c23474577acd428e 100644 --- a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java @@ -25,9 +25,9 @@ import org.apache.skywalking.apm.collector.agent.stream.AgentStreamModule; import org.apache.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.server.grpc.GRPCHandler; -import org.apache.skywalking.apm.network.proto.Application; -import org.apache.skywalking.apm.network.proto.ApplicationMapping; +import org.apache.skywalking.apm.network.proto.ApplicationMappings; import org.apache.skywalking.apm.network.proto.ApplicationRegisterServiceGrpc; +import org.apache.skywalking.apm.network.proto.Applications; import org.apache.skywalking.apm.network.proto.KeyWithIntegerValue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,18 +45,18 @@ public class ApplicationRegisterServiceHandler extends ApplicationRegisterServic applicationIDService = moduleManager.find(AgentStreamModule.NAME).getService(IApplicationIDService.class); } - @Override public void register(Application request, StreamObserver responseObserver) { + @Override public void batchRegister(Applications request, StreamObserver responseObserver) { logger.debug("register application"); - ProtocolStringList applicationCodes = request.getApplicationCodeList(); + ProtocolStringList applicationCodes = request.getApplicationCodesList(); - ApplicationMapping.Builder builder = ApplicationMapping.newBuilder(); + ApplicationMappings.Builder builder = ApplicationMappings.newBuilder(); for (int i = 0; i < applicationCodes.size(); i++) { String applicationCode = applicationCodes.get(i); int applicationId = applicationIDService.getOrCreate(applicationCode); if (applicationId != 0) { KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(applicationCode).setValue(applicationId).build(); - builder.addApplication(value); + builder.addApplications(value); } } responseObserver.onNext(builder.build()); diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java index 4abdd900fba5116f4cb48be838915c165815156d..e0efff8b99768a607e0ff802b23b7215b77be003 100644 --- a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java @@ -21,9 +21,9 @@ package org.apache.skywalking.apm.collector.agent.grpc.handler; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.apache.skywalking.apm.network.proto.Application; -import org.apache.skywalking.apm.network.proto.ApplicationMapping; +import org.apache.skywalking.apm.network.proto.ApplicationMappings; import org.apache.skywalking.apm.network.proto.ApplicationRegisterServiceGrpc; +import org.apache.skywalking.apm.network.proto.Applications; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,8 +40,8 @@ public class ApplicationRegisterServiceHandlerTestCase { ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext(true).build(); stub = ApplicationRegisterServiceGrpc.newBlockingStub(channel); - Application application = Application.newBuilder().addApplicationCode("test141").build(); - ApplicationMapping mapping = stub.register(application); - logger.debug(mapping.getApplication(0).getKey() + ", " + mapping.getApplication(0).getValue()); + Applications application = Applications.newBuilder().addApplicationCodes("test141").build(); + ApplicationMappings mapping = stub.batchRegister(application); + logger.debug(mapping.getApplications(0).getKey() + ", " + mapping.getApplications(0).getValue()); } } diff --git a/apm-network/src/main/proto/ApplicationRegisterService.proto b/apm-network/src/main/proto/ApplicationRegisterService.proto index 2143448b86f11d5d16f7b1165250a95d390b0c89..1852ee4edef3a6d0a05eff4a3af23faa8fcfc864 100644 --- a/apm-network/src/main/proto/ApplicationRegisterService.proto +++ b/apm-network/src/main/proto/ApplicationRegisterService.proto @@ -7,14 +7,14 @@ import "KeyWithIntegerValue.proto"; //register service for ApplicationCode, this service is called when service starts. service ApplicationRegisterService { - rpc register (Application) returns (ApplicationMapping) { + rpc batchRegister (Applications) returns (ApplicationMappings) { } } -message Application { - repeated string applicationCode = 1; +message Applications { + repeated string applicationCodes = 1; } -message ApplicationMapping { - repeated KeyWithIntegerValue application = 1; +message ApplicationMappings { + repeated KeyWithIntegerValue applications = 1; } diff --git a/apm-network/src/main/proto/TraceSegmentService.proto b/apm-network/src/main/proto/TraceSegmentService.proto index 607d8a6e4333abb00aea7d58cbf717b35cabb0f4..5ac1aba91e1322dcce2805e172356d5c1c1960ff 100644 --- a/apm-network/src/main/proto/TraceSegmentService.proto +++ b/apm-network/src/main/proto/TraceSegmentService.proto @@ -78,6 +78,7 @@ enum SpanLayer { RPCFramework = 2; Http = 3; MQ = 4; + Cache = 5; } message LogMessage { diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/SpanLayer.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/SpanLayer.java index 158b673ca4a6fa2c2c948de993e06322bc8fc9f9..5bd5980d33c05c197a3f3b2a0462cc552ff5ef7e 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/SpanLayer.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/SpanLayer.java @@ -16,7 +16,6 @@ * */ - package org.apache.skywalking.apm.agent.core.context.trace; /** @@ -26,7 +25,8 @@ public enum SpanLayer { DB(1), RPC_FRAMEWORK(2), HTTP(3), - MQ(4); + MQ(4), + CACHE(5); private int code; @@ -42,6 +42,10 @@ public enum SpanLayer { span.setLayer(SpanLayer.DB); } + public static void asCache(AbstractSpan span) { + span.setLayer(SpanLayer.CACHE); + } + public static void asRPCFramework(AbstractSpan span) { span.setLayer(SpanLayer.RPC_FRAMEWORK); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/dictionary/ApplicationDictionary.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/dictionary/ApplicationDictionary.java index 33648dacf5ed99887d75224dee0252c3bef58a6e..28d934b0b64ef59fc3ef647fd9a2c69d316e4088 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/dictionary/ApplicationDictionary.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/dictionary/ApplicationDictionary.java @@ -23,9 +23,9 @@ import io.netty.util.internal.ConcurrentSet; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.apache.skywalking.apm.network.proto.Application; -import org.apache.skywalking.apm.network.proto.ApplicationMapping; +import org.apache.skywalking.apm.network.proto.ApplicationMappings; import org.apache.skywalking.apm.network.proto.ApplicationRegisterServiceGrpc; +import org.apache.skywalking.apm.network.proto.Applications; import org.apache.skywalking.apm.network.proto.KeyWithIntegerValue; import static org.apache.skywalking.apm.agent.core.conf.Config.Dictionary.APPLICATION_CODE_BUFFER_SIZE; @@ -55,10 +55,10 @@ public enum ApplicationDictionary { public void syncRemoteDictionary( ApplicationRegisterServiceGrpc.ApplicationRegisterServiceBlockingStub applicationRegisterServiceBlockingStub) { if (unRegisterApplications.size() > 0) { - ApplicationMapping applicationMapping = applicationRegisterServiceBlockingStub.register( - Application.newBuilder().addAllApplicationCode(unRegisterApplications).build()); - if (applicationMapping.getApplicationCount() > 0) { - for (KeyWithIntegerValue keyWithIntegerValue : applicationMapping.getApplicationList()) { + ApplicationMappings applicationMapping = applicationRegisterServiceBlockingStub.batchRegister( + Applications.newBuilder().addAllApplicationCodes(unRegisterApplications).build()); + if (applicationMapping.getApplicationsCount() > 0) { + for (KeyWithIntegerValue keyWithIntegerValue : applicationMapping.getApplicationsList()) { unRegisterApplications.remove(keyWithIntegerValue.getKey()); applicationDictionary.put(keyWithIntegerValue.getKey(), keyWithIntegerValue.getValue()); } diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java index a214fdd22af652789aaf23a4a7ab014f399dc7ba..61cbd51722dcc250d86ef7f22bdc7354b2826b63 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java @@ -38,13 +38,13 @@ import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil; import org.apache.skywalking.apm.agent.core.dictionary.OperationNameDictionary; import org.apache.skywalking.apm.agent.core.logging.api.ILog; import org.apache.skywalking.apm.agent.core.logging.api.LogManager; -import org.apache.skywalking.apm.network.proto.Application; import org.apache.skywalking.apm.network.proto.ApplicationInstance; import org.apache.skywalking.apm.network.proto.ApplicationInstanceHeartbeat; import org.apache.skywalking.apm.network.proto.ApplicationInstanceMapping; import org.apache.skywalking.apm.network.proto.ApplicationInstanceRecover; -import org.apache.skywalking.apm.network.proto.ApplicationMapping; +import org.apache.skywalking.apm.network.proto.ApplicationMappings; import org.apache.skywalking.apm.network.proto.ApplicationRegisterServiceGrpc; +import org.apache.skywalking.apm.network.proto.Applications; import org.apache.skywalking.apm.network.proto.InstanceDiscoveryServiceGrpc; import org.apache.skywalking.apm.network.proto.ServiceNameDiscoveryServiceGrpc; @@ -112,10 +112,10 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList try { if (RemoteDownstreamConfig.Agent.APPLICATION_ID == DictionaryUtil.nullValue()) { if (applicationRegisterServiceBlockingStub != null) { - ApplicationMapping applicationMapping = applicationRegisterServiceBlockingStub.register( - Application.newBuilder().addApplicationCode(Config.Agent.APPLICATION_CODE).build()); - if (applicationMapping.getApplicationCount() > 0) { - RemoteDownstreamConfig.Agent.APPLICATION_ID = applicationMapping.getApplication(0).getValue(); + ApplicationMappings applicationMapping = applicationRegisterServiceBlockingStub.batchRegister( + Applications.newBuilder().addApplicationCodes(Config.Agent.APPLICATION_CODE).build()); + if (applicationMapping.getApplicationsCount() > 0) { + RemoteDownstreamConfig.Agent.APPLICATION_ID = applicationMapping.getApplications(0).getValue(); shouldTry = true; } } diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java index 40df37888bb792a95e540fb0b8365a77ad86181b..a4d900d21a5afd516d81e646876ccf5183f7779a 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptor.java @@ -37,7 +37,7 @@ public class JedisMethodInterceptor implements InstanceMethodsAroundInterceptor AbstractSpan span = ContextManager.createExitSpan("Jedis/" + method.getName(), peer); span.setComponent(ComponentsDefine.REDIS); Tags.DB_TYPE.set(span, "Redis"); - SpanLayer.asDB(span); + SpanLayer.asCache(span); if (allArguments.length > 0 && allArguments[0] instanceof String) { Tags.DB_STATEMENT.set(span, method.getName() + " " + allArguments[0]); diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java index 2381c29119508ad6833f57e322d200e4b22a6c95..f5d99c8f1c34038ea8f3d669b80d89f901d37f14 100644 --- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jedis/v2/JedisMethodInterceptorTest.java @@ -132,7 +132,7 @@ public class JedisMethodInterceptorTest { List tags = SpanHelper.getTags(span); assertThat(tags.get(0).getValue(), is("Redis")); assertThat(tags.get(1).getValue(), is("set OperationKey")); - assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.DB)); + assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.CACHE)); } private Method getMockSetMethod() { diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java index 5300afc40d29fd1114c515b03947a04c8162b5ee..049d789e23bd176823a87376dcc0bec13e4a4310 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/AbstractMessageConsumeInterceptor.java @@ -53,7 +53,7 @@ public abstract class AbstractMessageConsumeInterceptor implements InstanceMetho AbstractSpan span = ContextManager.createEntrySpan(COMSUMER_OPERATION_NAME_PREFIX + msgs.get(0).getTopic() + "/Consumer", contextCarrier); span.setComponent(ComponentsDefine.ROCKET_MQ); - span.setLayer(SpanLayer.MQ); + SpanLayer.asMQ(span); for (int i = 1; i < msgs.size(); i++) { ContextManager.extract(getContextCarrierFromMessage(msgs.get(i))); } diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java index 9df13ece4aa872ca056bea263dcd84fe8484f48f..05eadfc52ea6d3626874727f93b53811ff896081 100644 --- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java @@ -60,7 +60,7 @@ public class MessageSendInterceptor implements InstanceMethodsAroundInterceptor String namingServiceAddress = String.valueOf(objInst.getSkyWalkingDynamicField()); AbstractSpan span = ContextManager.createExitSpan(buildOperationName(message.getTopic()), contextCarrier, namingServiceAddress); span.setComponent(ComponentsDefine.ROCKET_MQ); - span.setLayer(SpanLayer.MQ); + SpanLayer.asMQ(span); span.tag("brokerName", (String)allArguments[1]); span.tag("tags", message.getTags()); span.tag("communication.mode", ((CommunicationMode)allArguments[5]).name()); diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java index bd2de96abc6292dcbf06e203bc9584516002ed95..caca92ccefe6b4ca245ca83561c8430d6580e09f 100644 --- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java @@ -40,7 +40,7 @@ public class MemcachedMethodInterceptor implements InstanceMethodsAroundIntercep AbstractSpan span = ContextManager.createExitSpan(SPY_MEMCACHE + method.getName(), peer); span.setComponent(ComponentsDefine.MEMCACHED); Tags.DB_TYPE.set(span, ComponentsDefine.MEMCACHED.getName()); - SpanLayer.asDB(span); + SpanLayer.asCache(span); Tags.DB_STATEMENT.set(span, method.getName() + " " + allArguments[0]); } diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java index efb8c985f39f71b87fd56630108bc499d68c9f0b..a1acf0fb47fef5818b6547ab0a6a6197601b2d25 100644 --- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java @@ -116,7 +116,7 @@ public class MemcachedMethodInterceptorTest { List tags = SpanHelper.getTags(span); assertThat(tags.get(0).getValue(), is("Memcached")); assertThat(tags.get(1).getValue(), is("set OperationKey")); - MatcherAssert.assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.DB)); + MatcherAssert.assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.CACHE)); } private Method getMockSetMethod() { diff --git a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptor.java index 3ae9ed32d80de3b33335c0dbc328bf6d60bfdaf4..feb22baa5d002640918ebe24ba89949888157e59 100644 --- a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptor.java @@ -46,7 +46,7 @@ public class XMemcachedMethodInterceptor implements InstanceMethodsAroundInterce AbstractSpan span = ContextManager.createExitSpan(XMEMCACHED + method.getName(), peer); span.setComponent(ComponentsDefine.MEMCACHED); Tags.DB_TYPE.set(span, ComponentsDefine.MEMCACHED.getName()); - SpanLayer.asDB(span); + SpanLayer.asCache(span); Tags.DB_STATEMENT.set(span, method.getName() + " " + allArguments[0]); } diff --git a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptorTest.java index 67788862de9b7ca5656a554c51888c9c7dba6a0f..55dfbf2fd1af4fddd902dd154825b9e9ae6e20c1 100644 --- a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptorTest.java +++ b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/xmemcached/v2/XMemcachedMethodInterceptorTest.java @@ -119,7 +119,7 @@ public class XMemcachedMethodInterceptorTest { List tags = SpanHelper.getTags(span); assertThat(tags.get(0).getValue(), is("Memcached")); assertThat(tags.get(1).getValue(), is("set OperationKey")); - assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.DB)); + assertThat(SpanHelper.getLayer(span), CoreMatchers.is(SpanLayer.CACHE)); } private Method getMockSetMethod() throws Exception {