说明
线上App都有统计实时Log的需求,比如用户突然报错了,怎么排查。比如淘宝,搜索出来的商品列表iPhone 11显示价格¥4900,点击进商品详情页显示¥5100,如果金额显示少了就是惊喜,显示金额多了就是惊吓。这种异常不是逻辑异常,而是数据异常,需要提示运营人员,及时更新。
现在用AppDynamic来上报异常数据,显示出来。如果做得更好,可以发邮件,打电话通知。
这里以iOS为例子
AppDynamic 安装
在Podfile中,增加AppDynamic SDK.
pod 'AppDynamicsAgent'
尽量用新的版本,笔者用的版本
pod 'AppDynamicsAgent', '2020.3.0'
运行Pod
pod install
代码记录
异常上报会自动打印StackTrace 堆栈信息
var domain = "com.YourCompany.AddUsers.ErrorDomain"
var desc = NSLocalizedString("Unable to add user.", comment: "")
var userInfo = [NSLocalizedDescriptionKey: desc]
var error = NSError(domain: domain, code: -101, userInfo: userInfo)
ADEumInstrumentation.reportError(error, withSeverity: ADEumErrorSeverityLevelWarning)
笔者做了一些修改,
- domain: 记录mask的用户登录名,比如aaa***bbb;
- code: 错误代码
- desc: 错误描述
- userInfo: 这是一个Dictionary,可以增加request,response等信息。
记录查看
数据同步的统计平台,5分钟内会同步过去(笔者实践得知)。
AppDynamic > User Experience > Mobile Apps > 选择bundle Id的应用 > Code Issues > Code Issue Dashboard > Unique Code Issues
点击堆栈原始信息,如下面箭头所示,可以看到自定义的信息。
参考
https://docs.appdynamics.com/display/PRO45/Customize+the+iOS+Instrumentation
https://docs.appdynamics.com/display/PRO45/Code+Issues+Dashboard