自定义字段分析及展示功能
1 概述
在支持自定义字段上报的同时,crashsight支持对指定字段的实时统计和图形化展示。上报时按规范格式说明字段的类型(当前支持数值类型,字符串类型和行为序列类型),此字段就可以在页面上“自定义管理页签”中进行选择,并支持实时饼图,直方图等实时统计。 Web 端使用示例如下图所示:
行为序列数据的最大公共序列推荐配置
在自定义分析页签中,配置需要进行计算的序列字段
配置后,会Top20的问题进行自动统计和展示。对于其他的问题支持手动进行计算,手动计算会默认拉取最近1000条崩溃,进行计算。计算时间与序列大小本身相关,在数秒至数十秒不等。
2 SDK端接口调用说明
Android:
CrashReport.putUserData(Context c, String key, String value)
iOS:
+(void)SetUserValue: (nonnull NSString*) value forKey: (nonnull NSString*)key
Windows:
void CS_SetUserValue(const char *key, const char *value)
自定义字段的value不可带有英文冒号和分号,否则可能造成解析失败。
3 数据格式说明
需对要统计的字段指定数据类型。指定了类型的字段,后台就会进行相应处理,而类型也决定了统计和展示的方式。目前支持的数据格 式有数值、字符串、行为序列三种。
3.1 通过接口传入带格式的自定义字段
Unity和UE插件中提供了不同格式的自定义字段接口重载(需要SDK版本4.3.2及以上,4.3.2以下的版本请参考3.2中的方法手动设置字段类型)。
Unity接口:
// 数值类型的自定义数据
public static void SetUserValue(string key, int value)
// 字符串类型的自定义数据
public static void SetUserValue(string key, string value)
// 行为序列类型的自定义数据
public static void SetUserValue(string key, string[] value)
UE接口:
// 数值类型的自定义数据
static void SetUserValue(const char* key, int value);
// 字符串类型的自定义数据
static void SetUserValue(const char* key, const char* value);
// 行为序列类型的自定义数据
static void SetUserValue(const char* key, const char** values, int count);
3.2 如何手动指定自定义字段的数据格式?
字段类型指定的方式,是复用了原有Key字段。新增一个类型字段(I表示数值,K表示字符串,S表示行为序列数据)组合在Key之前,以#进行分隔。例如:
数值类型的自定义数据上报
Key:I#key
Value:100
字符串类型的自定义数据上报:
Key:K#key2
Value:lobby
行为序列类型的自定义上报
Key:S#key3
Value:action1#action2#action3#action4#action5#action6
行为序列类型的数据用#进行拼接,后台会自动进行拆分,挖掘输出最大公共序列,方便问题复现。
指定类型的数据,在处理链中会进行额外处理,支持页面选择和实时统计,如未加类型的数据,则默认不进行更多的处理。
采用手动指定数据格式的方式时,请调用以下接口传入自定义数据。
Unity接口:
public static void AddSceneData(string key, string value)
UE接口:
static void AddSceneData(const char* key, const char* value);