为应用安装探针后,云监控2.0即可开始监控应用,您可以在异常分析页面按照异常名称、接口名称、主机对异常次数、异常列表进行筛选分析,优化产生异常的代码。
什么是异常
在ARMS的异常分析功能中,默认情况下,ARMS仅可以采集到被埋点方法抛出的异常,但在用户的实际业务中,可能一次接口调用记录不到异常或者记录一个或多个异常。
例如,假设ARMS探针当前对public void methodA 和public void methodB两个方法进行了埋点,且两个方法互相有调用关系,则在下述场景下,ARMS记录的异常会有所差异。
场景1:methodA、methodB 各自捕获异常并打印。
这种场景下,ARMS监控不到任何异常。
public int methodA() { try { return methodB(); } catch (Throwable e) { e.printStackTrace(); return 0; } } public int methodB() { try { return 1 / 0; } catch (Throwable e) { e.printStackTrace(); return 0; } }
场景2:methodA捕获异常并打印,methodB抛出异常。
这种场景下,ARMS可以监控到一个
java.lang.ArithmeticException
。public int methodA() { try { return methodB(); } catch (Throwable e) { e.printStackTrace(); return 0; } } public int methodB() { return 1 / 0; }
场景3:methodA、methodB各自抛出异常。
这种场景下,ARMS可以监控到两个
java.lang.ArithmeticException
。public int methodA() { return methodB(); } public int methodB() { return 1 / 0; }
场景4:methodA封装并抛出异常、methodB抛出异常。
这种场景下,ARMS可以监控到一个
java.lang.ArithmeticException
和一个java.lang.RuntimeException
。public static int methodA() { try { return methodB(); } catch (Throwable e) { throw new RuntimeException(e); } } public static int methodB() { return 1 / 0; }
前提条件
已将应用接入云监控2.0。
功能体验
阿里云Playground提供了云监控2.0主要功能的演示环境,便于您快速了解及体验云监控2.0。
请访问 Playground Demo 演示环境,默认进入工作空间:
o11y-demo-cn-hangzhou
。在左侧导航栏选择
。
查看异常分析
该文章对您有帮助吗?