注解方式埋点 基于异常比率的降级场景下无法熔断的问题

版本是1.8

提问88.png

sentinel的基于异常率进行熔断的场景下,需要获取entry.getError()来进行数据统计。 但是在sentinel的切面中出现异常是并没有将这个信息传入进来,从而导致无法获取异常数,进而导致无法进行熔断,代码如下图

提问89.png

解决方案,在catch中将异常传入到entry中去

提问90.png

原提问者GitHub用户yulinfu-design

展开
收起
学习娃 2023-05-19 15:33:30 92 分享 版权
1 条回答
写回答
取消 提交回答
  • traceException将记录异常。参考:

    Sentinel/sentinel-extension/sentinel-annotation-aspectj/src/main/java/com/alibaba/csp/sentinel/annotation/aspectj/AbstractSentinelAspectSupport.java

    Lines 44 to 53 in 7920243

    protected void traceException(Throwable ex, SentinelResource annotation) { Class<? extends Throwable>[] exceptionsToIgnore = annotation.exceptionsToIgnore(); // The ignore list will be checked first. if (exceptionsToIgnore.length > 0 && exceptionBelongsTo(ex, exceptionsToIgnore)) { return; } if (exceptionBelongsTo(ex, annotation.exceptionsToTrace())) { traceException(ex); } }

    原回答者GitHub用户sczyh30

    2023-05-19 20:31:08
    赞同 展开评论
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

还有其他疑问?
咨询AI助理