From 61a75af379e3c3b006101075b209a17bdc0fcef1 Mon Sep 17 00:00:00 2001 From: Eric Zhao Date: Fri, 2 Nov 2018 19:22:00 +0800 Subject: [PATCH] Add exception count trace for Sentinel annotation aspectj support Signed-off-by: Eric Zhao --- .../annotation/aspectj/AbstractSentinelAspectSupport.java | 4 +++- .../sentinel/annotation/aspectj/SentinelResourceAspect.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/AbstractSentinelAspectSupport.java b/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/AbstractSentinelAspectSupport.java index 30f5bbaf..5aacf89e 100644 --- a/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/AbstractSentinelAspectSupport.java +++ b/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/AbstractSentinelAspectSupport.java @@ -20,6 +20,7 @@ import com.alibaba.csp.sentinel.slots.block.BlockException; import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException; import com.alibaba.csp.sentinel.util.MethodUtil; import com.alibaba.csp.sentinel.util.StringUtil; + import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; @@ -47,7 +48,8 @@ public abstract class AbstractSentinelAspectSupport { protected Object handleBlockException(ProceedingJoinPoint pjp, SentinelResource annotation, BlockException ex) throws Exception { - return handleBlockException(pjp, annotation.fallback(), annotation.blockHandler(), annotation.blockHandlerClass(), ex); + return handleBlockException(pjp, annotation.fallback(), annotation.blockHandler(), + annotation.blockHandlerClass(), ex); } protected Object handleBlockException(ProceedingJoinPoint pjp, String fallback, String blockHandler, diff --git a/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/SentinelResourceAspect.java b/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/SentinelResourceAspect.java index 8665b8e3..83a1f590 100644 --- a/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/SentinelResourceAspect.java +++ b/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/SentinelResourceAspect.java @@ -18,6 +18,7 @@ package com.alibaba.csp.sentinel.annotation.aspectj; import com.alibaba.csp.sentinel.Entry; import com.alibaba.csp.sentinel.EntryType; import com.alibaba.csp.sentinel.SphU; +import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.csp.sentinel.slots.block.BlockException; import org.aspectj.lang.ProceedingJoinPoint; @@ -57,6 +58,9 @@ public class SentinelResourceAspect extends AbstractSentinelAspectSupport { return result; } catch (BlockException ex) { return handleBlockException(pjp, annotation, ex); + } catch (Throwable ex) { + Tracer.trace(ex); + throw ex; } finally { if (entry != null) { entry.exit();