fundebug
支持多类型项目
- js
- vue
- node
- 小程序
- .......
安装方便-使用简单,对原本项目的代码侵入性,串改console方法 ,其他还需长期观察
能捕捉到范围
能捕捉到范围,分为5类,主要就前面三种
- JavaScript执行错误 ReferenceError
- 资源加载错误 resourceError
- HTTP请求错误 httpError
- unhandledrejection 未使用 catch 处理的 Promise 错误
- WebSockect连接错误
支持sourcemap快速定位错误代码位置
上传报错代码机制
当捕获到上述错误,一个错误会发一次请求到fundebug服务器, 在控制台会及时更新错误日志,支持丁丁和邮箱报警配置。
错误回放-按需使用
可以区分多套环境配置,但条数有限,建议看具体业务线情况分环境执行
报警规则
- 时间间隔:实时/15分钟/30分钟/1小时/2小时/.../6小时
- 规则:等比数列/有限数列 - 可添加多条 - 满足任意或全部条件 不能做到精确报错类型
报警方式
- 邮件
- DingDing - 机器人
钉钉机器人给了我们关键词认证(最多添加10个关键字),即,只有出现关键词才允许在群聊中发出
所以,我们可以提炼10大重要信息作为报错类型的限制,配合报警时间间隔与数列规则,做到一定情况的报警
- 三方社交软件(洽洽,企业邮箱...)
优缺点
优点
- 开箱即用
- 毕竟我们现在没有(对目前偶现,非直观异常,app嵌套h5等情况能更好的定位并解决问题)
缺点
- 收钱
- 异常数据在第三方数据库(包括录屏回放,用户信息等,这是重伤)
- 一个错误就需要占用一次http请求
- 定制化自定义难,不能进行二次开发,功能局限
需测试
- 轮询报错并发测试
结果
- 可以使用
试用报告
一个看似没有问题的前端网站,通过自测,测试,验收等环节,最后成功上线的给广大用户使用,没想到却有如此多种多样的问题报错,在正常环境与非正常环境,我们如何去规避,最优的解决问题。fundebug的试用。
体验
即时的问题收集,与个性化的实时报警,让我们能更早发现问题,定位问题,解决问题。
代码语法错误 错误级别:1级
- 作为语法错误,本身就是高风险,不允许存在。
语法兼容性问题 错误级别:2级
- 前端面对用户情况复杂,兼容性问题往往不好定位
三方语法错误 错误级别:2级
- 对业务功能,项目整体是否存在风险。
- 是否阻塞流程,总结如何规避
接口/资源超时 错误级别:3级
- 主要依赖文件-是否可以存放本地
- 对于异常量较大的超时问题:抛出--(是自身网络环境还是服务器压力,优化处理关键节点)
具体领域,具体分析 - 一同细化总结共性与个性问题,输出分享解决方案
关键节点 例如:
- 登录注册
- 充值/结算 等支付流
- 如游戏:从登录开始,到最后进入游戏整个流程,是绝对不允许阻塞等
界面
问题展示界面清晰,简洁。
报警
通过自定义配置,使用钉钉来通知相关项目出现的问题
针对目前情况,报警方案
- 分组:按人员所负责项目分小组;所有项目统计分大组:集体群聊
- 报警条件:一、设置有序/等比数列 二、时间间隔 三、钉钉:关键字规则
- 报警机制,时间:可控;小组报警时间间隔:1小时;集体群聊时间间隔:6小时
收费
主要对数据针对数据条数,我们可以自定义对无用报错过滤,不同环境的区分,来限制条数。
问题
一、重视: 问题为何会出现,想想自己写的代码会报错,体验不友好等诸多问题。或许这些异常问题并不会影响流程,只有少数用户偶现。等侥幸心理不应出现。问题不可怕,怕就怕你不去解决它。解决问题是理解代码原理的方式之一 二、时机: 隐藏的问题,尽早发现尽早解决。不是到用户反馈,才去解决问题
结果
目前情况与局势,根据业务线痛点,可以按需接入监控系统。
使用说明书
一、安装
yarn add fundebug-javascript fundebug-vue --save
yarn add fundebug-revideo --save
二、配置 (放在util/fundebug.js中,最后引入main.js)
import Vue from 'vue'
import hostConfig from '../api/config'
import * as fundebug from 'fundebug-javascript'
import fundebugVue from 'fundebug-vue'
// fundebug 初始化配置
function fundebugInit (env) {
fundebug.init({
apikey: 'xx',
releasestage: env,
filters: [
{
name: /uncaught error/,
message: /ResizeObserver loop limit exceeded/
},
{
name: /unhandledrejection/,
message: /{"code":"201","data":"","message":"登录已失效,请重新登录"}/
},
{
name: /uncaught error/,
message: /Script error./
},
{
name: /^unhandledrejection$/
}
]
})
fundebugVue(fundebug, Vue)
// 回放功能
require('fundebug-revideo')
}
// 只运行在预发和线上
if (hostConfig.fundebug) {
if (hostConfig.doamin === 'sdk-h5-pre.y8511.cn') {
fundebugInit('pre')
} else {
fundebugInit('production')
}
}
四、报警() 规则:10的等比数列 时间间隔:1/2小时 钉钉-关键字:错误