Vicrab找虫记--Vicrab的搜索使用

Vicrab找虫记


无论多么完善的程序,bug总是或多或少的存在,有些开发时测试完美无缺的程序,发布到生产环境就会出现意想不到问题,这个时候大多数程序员的解决办法就是登录服务器,找到日志文件,从海量的日志文件中寻找问题数据。但是程序每天都在产生大量的日志,而且还分别在不同的服务器上,往往等我们找到问题所在的时候用户可能已经在骂骂咧咧中下线了。

那么有没有一个可以专门记录错误日志或者是指定级别日志的工具呢,并且规定好统一的日志格式,将所有模块的日志进行适配之后统一管理起来,并建立相应的日志分类与报表,在检查到问题的时候通过邮件的形式通知运维。
而我们公司就选中了一个简单粗暴的方案:所有项目集成Vicrab!日志采集,聚合,主动报警,可视化界面都有了。


简单场景示例

上面的都是套话,接下来是Vicrab使用定位bug之路。

场景:

用户反馈说他的app进入某个页面时会直接闪退让我们处理

未使用Vicrab前定位问题:

没有使用Vicrab前 我们只能登陆服务器查询这个用户在服务端的日志,并且在自己的设备上尝试重现用户的现象定位问题。这种定位方式 费时费力 还不一定能找到原因

使用Vicrab后定位问题:

使用Vicrab后,我们直接在Vicrab中的搜索条件中输入我们要定位问题的用户id,如下图
根据用户id搜索异常统计
找到定位的异常信息后进入详情,如下图
指定用户的异常信息详情页
根据搜索到的异常信息我们进行定位用户问题 解决bug,大大缩短了定位问题的时间。
很简单的描述 但是想要用好vicrab还是需要我们进行相应的配置的。接下来说一下 如何使用好vicrab的搜索功能。至于如何安装使用请参考官网vicrab官方文档

如何用好Vicrab的搜索功能

“工欲善其事,必先利其器”,再好的工具使用的方式不对也发挥不出效果。Vicrab中每一个事件(每一条上报的信息,以下统称为事件)中有以下概念

  • tags 标签 开发者自定义的标签
  • extra 附加数据 不被索引的但需要展示的数据
  • release 版本 开发者配置程序运行的版本
  • environment 环境 开发者配置程序运行的环境

在用户的每次请求处理前添加tags 和 extra

Vicrab.getContext().addTag("user_id", "当前请求的用户id");
Vicrab.getContext().addTag("user_phone", "当前请求的用户手机号");
Vicrab.getContext().addExtra("extra_key1", "extra_value1");
Vicrab.getContext().addExtra("extra_key2", "extra_value2");

在每次请求结束后清理当前的数据标签和附加数据

Vicrab.getContext().clear();

在配置文件vicrab.properties中配置该项目的dsn,版本和环境

dsn=你的dsn地址
## 程序版本
release=你的版本
## 程序运行的环境
environment=你的环境

根据上面的设置好后 上报的信息就可以通过以上条件进行搜索, 效果图如下:
根据环境版本用户id搜索页面

总结

Vicrab还有有很多亮点,比如环境过滤, release 版本跟踪,关键字查找,受影响用户统计,警报邮件发送等。对我们来说最大的便利就是利用日志进行错误发现和排查的效率变高了

优点

  • 可以通过标签环境版本等关键信息快速定位异常
  • 相同或类似异常信息的聚合,聚合的日志信息省略了人工从海量日志中寻找线索,免除大量无关信息的干扰
  • 报警的及时性:不需要自己再去额外集成报警系统,一旦产生了 issue 便以邮件通知到项目组的每个成员(还支持自己定义报警规则)
  • 详情页中丰富的上下文信息,可以让我们看到更多的有效内容

缺点

  • 有存在数据丢失的情况, 在某些情况下会存在数据丢失的情况 例如网络波动,事件数据量达到限制
  • 聚合统计出来的数据 原本应该归结为一个的 结果变成了很多个
  • 日志信息以样本的形式展示部分原始日志的信息。信息不全面的同时,使用过程中也可能出现 Vicrab 聚合所带来的负面影响,特别是日志记录质量不够的情况下
  • Vicrab 依赖于发出的日志报告,而另外一些隐藏的逻辑问题或者业务问题很可能不会得到反馈
  • 语言支持种类少 目前只支持Android和Java

整体上来说Vicrab这个工具还是很优秀的,对于中小型公司来说是一个不错的bug追踪系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值