tencent cloud

文档反馈

错误监控

最后更新时间:2024-01-22 19:39:30
     前端性能监控的 Aegis 的实例会自动进行 JS 执行错误、Promise 执行错误、Ajax(Fetch)请求异常等监控。本文将为您介绍各错误监控逻辑及处理方式。
    注意:
    Aegis 实例会对这些异常进行监控,当您只是引入了 SDK 而没有将其实例化时,Aegis 将不会上报数据。

    JS执行错误

    Aegis 通过监听 window 对象上的 onerror 事件来获取项目中的报错,并且通过解析错误和分析堆栈,将错误信息自动上报到后台服务中。该上报的上报等级为 error ,所以当自动上报的错误达到阈值时,Aegis 将会自动告警,帮助您尽早发现异常。由于上报等级为 error ,自动上报也将影响项目的评分。
    如果页面上引入了跨域的 JS 脚本,需要给对应的 script 标签添加 crossorigin 属性,否则 Aegis 将无法获取详细的错误信息。
    如果用户使用的是 VUE 框架,请引入下列代码,获取错误并且主动上报。
    Vue.config.errorHandler = function(err, vm, info) {
    console.log(`Error: ${err.toString()}\\nStack: ${err.stack}\\nInfo: ${info}`);
    aegis.error(`Error: ${err.toString()}\\nStack: ${err.stack}\\nInfo: ${info}`);
    };

    Promise 执行错误

    通过监听 unhandledrejection 事件,捕获到未被 catch 的 Promise 错误,为了页面的稳定性,建议您 catch 住所有的 Promise 错误。

    Ajax(Fetch)请求异常

    Aegis 将会改写 XMLHttpRequest 对象,监听每次接口请求,Aegis 认为以下情况是异常情况:
    http status 大于等于 400
    请求超时,abort,跨域,cancel
    请求结束时 http status 仍然是 0,通常发生于请求失败
    注意:
    Aegis SDK 在错误发生的时候,不会主动收集接口请求参数和返回信息,如果需要对进口信息进行上报,可以使用 API 参数里面的 apiDetail 进行开启。
    new Aegis({
    api: {
    apiDetail: true,
    },
    });

    retcode异常

    Aegis 改写 XMLHttpRequest 对象之后,将获得 API 返回的内容,并尝试在内容中获取到本次请求的 retcode,当 retcode 不符合预期的时候,会认为本次请求出现了异常,并进行上报。
    说明:
    如何获取 retcode 以及哪些retcode 是正常的,详情请参见 配置文档

    资源加载失败

    页面元素发出的请求如果失败,将会被 window.onerror 事件捕获到(捕获阶段),Aegis 正是通过这个特性监听的资源加载失败。Aegis 监听了以下资源:
    <link> 标签请求的 css、font 等。
    <script> 标签请求的脚本。
    <audio><video> 标签请求的多媒体资源。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持