From 61f8d3ee505ffc9a3f9041163e58ee624c4dcc20 Mon Sep 17 00:00:00 2001 From: lytscu Date: Sun, 11 Feb 2018 15:32:48 +0800 Subject: [PATCH] Update afterMethod exception status --- .../servicecomb/ProducerOperationHandlerInterceptor.java | 9 +++++---- .../servicecomb/TransportClientHandlerInterceptor.java | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/ProducerOperationHandlerInterceptor.java b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/ProducerOperationHandlerInterceptor.java index ca1ed82ae..c83a6b5b0 100644 --- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/ProducerOperationHandlerInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/ProducerOperationHandlerInterceptor.java @@ -53,10 +53,8 @@ public class ProducerOperationHandlerInterceptor implements InstanceMethodsAroun } String operationName = invocation.getMicroserviceQualifiedName(); AbstractSpan span = ContextManager.createEntrySpan(operationName, contextCarrier); - if (null != invocation.getOperationMeta() && null != invocation.getOperationMeta().getOperationPath()) { - String url = invocation.getOperationMeta().getOperationPath(); - Tags.URL.set(span, url); - } + String url = invocation.getOperationMeta().getOperationPath(); + Tags.URL.set(span, url); span.setComponent(ComponentsDefine.SERVICECOMB); SpanLayer.asRPCFramework(span); } @@ -64,6 +62,9 @@ public class ProducerOperationHandlerInterceptor implements InstanceMethodsAroun @Override public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, Object ret) throws Throwable { Invocation invocation = (Invocation)allArguments[0]; + if (null == invocation.getOperationMeta()) { + return ret; + } AbstractSpan span = ContextManager.activeSpan(); int statusCode = invocation.getStatus().getStatusCode(); if (statusCode >= 400) { diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptor.java b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptor.java index cfb08a0d0..83db86060 100644 --- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/servicecomb/TransportClientHandlerInterceptor.java @@ -65,6 +65,9 @@ public class TransportClientHandlerInterceptor implements InstanceMethodsAroundI @Override public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class[] argumentsTypes, Object ret) throws Throwable { Invocation invocation = (Invocation)allArguments[0]; + if (null == invocation.getOperationMeta() || null == invocation.getEndpoint()) { + return ret; + } AbstractSpan span = ContextManager.activeSpan(); int statusCode = invocation.getStatus().getStatusCode(); if (statusCode >= 400) {