vicrab 使用心得

一、初识 Vicrab

          公司开发的产品是一款几千万级的视频应用,在线上的应用因用户使用的网络环境,用户操作习惯各有差异,以及各种设备的兼容性问题,每次发到线上后总会非常及时(无奈)的收到用户的各种反馈,虽说在公司做过各种测试,也在应用中集成了友盟,Bugly这些异常采集的工具,但这些工具只能对崩溃问题进行排查,但在我们的应用中对应用错误提前预警,运行状态监控还有一些定制化的日志无法收集的问题束手无策,对反馈的问题在排查时无从下手,给我们的开发人员带来很大的挑战,由此集成一个应用运行状态监控,错误提前预警,以及可收集自定义日志的工具势在必然。

          知道问题后,然后开始各种google,baidu 搜索,查找能满足当前需求的工具,各种搜索后,找了很多工具,最后找到介绍Vicrab 的 ( https://blog.csdn.net/lifeneedyou/article/details/90052641 )这篇文章,通过文章介绍来看,Vicrab 这个工具跟我们实际的需求比较匹配,即然有了方向那就开始集成测试。

 

二、集成测试

          看了vicrab的官网,对于这个工具的集成比较简单,但对这个工具的稳定性,性能不了解,即然想使用就要做到可控(被线上的各种问题折磨怕了)。我们在后台接口这块加上了对此功能的开关设置,一但出问题可以对关闭此工具的使用。

          集成主要有以下几步

         1.在Vicrab 官网注册

         

         2.在Vicrab 官网申请项目 

 

       

         3.安卓项目中集成

            集成时可以参照官网文档中的集成文档(https://doc.vicrab.com/web/#/2?page_id=3),如果文档懒得看也可以直接下载集成 Demo 把 Demo 里的方法移植到项目中。

            在 build.gradle中引入 jar 包

    implementation 'com.vicrab:vicrab-all:1.1'
    implementation 'com.vicrab:vicrab:1.1'
    implementation 'com.vicrab:vicrab-android:1.1'

            引入jar包编译通过后,创建一个单例类,引入头文件初始化 Vicrab

//引入头文件
import com.vicrab.Vicrab;
import com.vicrab.android.AndroidVicrabClientFactory;

//初始化方法
try {
    Vicrab.init(DSN_URL, new AndroidVicrabClientFactory(mContext));
} catch (NoSuchMethodError e) {
    e.printStackTrace();
} catch (IncompatibleClassChangeError error){
    error.printStackTrace();
}catch(NoClassDefFoundError error) {
    error.printStackTrace();
}catch (Exception e){
    e.printStackTrace();
}

             初始化方法时用到一个 DSN_URL,这个地址在官网创建项目时会自动分配一个地址,把dsn地址拷贝到项目中即可。

          在单例类中添加方法

    /**
     * 采集异常方法
     */
    public void collectError(Exception e) {
        try {
            com.vicrab.context.Context ctx = Vicrab.getContext();
            ctx.addTag("mac", "mac 地址");//添加 TAG 
            Vicrab.capture(e); //上报日志
            Vicrab.clearContext();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

         此方法中添加的  TAG 可以在项目中搜索此 TAG 的相关信息,可以定义一些终端的标识放在里面,方便出问题时查询用户上报的日志。查询方法如下

 

          在处理一些异常时调用此方法即可:

        也可以自定义一些异常上报上去

到此 Vicrab 集成完毕。

三。解决问题的案例

1.终端运行状态监控以及预警

        本文开始提到的,终端程序运行状态监控,错误提前预警的功能,可以在官网的警报设置中做如下设置

   

项目做完此设置后,Vicrab 会根据规则对此项目的所有成员发送邮件,达到对项目的运行状态监控。

2.预埋点上报日志,对线上偶发问题进行错误跟踪。

前几天发现一个问题,发现部分 p2p 厂商 cdn 使用的比例过高,在公司内不能复现,通过 vicrab 在业务处理时,预先埋点

try {
    playUrl = TitanSDKCore.getVodUrl(playUrl, Constants.TITAN_OPTION_STR);
    ExceptionErrorCollectManager.getInstance().collectError(new InputMismatchException( "Taiwu Exchange P2P address successful"));
} catch (Exception e){
    PkLog.d(TAG,e.getMessage());
    ExceptionErrorCollectManager.getInstance().collectError(new InputMismatchException( "Taiwu Exchange P2P address error"));
    ExceptionErrorCollectManager.getInstance().collectError(e);
}



playUrl = XYLiveSDK.playUrlRewrite(playUrl);
if (!playUrl.contains("127.0.0.1")){
    ExceptionErrorCollectManager.getInstance().collectError(new InputMismatchException("Xunlei Exchange P2P address error"));
}else{
    ExceptionErrorCollectManager.getInstance().collectError(new InputMismatchException("Xunlei Exchange P2P address successful"));
}

            

 发出版本后,vicrab 自动采集相关数据

通过tag 标签查询某个用户上报的日志跟踪错误原因,解决错误

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值