ARMS用户体验监控提供一系列SDK配置项,让您能够通过设置参数来满足额外需求。本文介绍Flutter应用常用的SDK配置。
自定义用户名称
SDK支持设置与用户相关的信息,从而完成数据分析与实际用户相关联的需求场景。
Future<void> setUserName(String userName)
参数 | 说明 | 参数限制 | 失败结果 |
userName | 用户名称标识 | 字符串可为null或空串。 字符串小于等于256,且不包含特殊字符,只允许数字、字母、英文半角冒号(:)、空格、正斜线(/)、下划线(_)、英文半角连接号(-)、英文半角句号(.)和@。 | 接口调用失败,当次设置无效。 |
示例:
AlibabaCloudRUM().setUserName("xxxxx");
自定义用户扩展信息
SDK支持设置与用户相关的信息,从而完成数据分析与实际用户相关联的需求场景。
Future<void> setUserExtraInfo(Map<String, dynamic> extraInfo)
参数 | 说明 | 参数限制 | 失败结果 |
extraInfo | 用户扩展信息 | Map可为空或空集。 转JSON后长度在7000字符以内,否则接口调用失败。 | 接口调用失败,当次设置无效。 |
示例:
AlibabaCloudRUM().setUserExtraInfo({"shopId": "xxxxx", "shopName": "yyyyy"});
自定义异常
调用自定义异常接口,并传入相应的参数,可完成自定义异常数据的统计功能。
Future<void> setCustomException(String exceptionType, String causedBy, String errorDump)
参数 | 说明 | 参数限制 | 失败结果 |
exceptionType | 异常类型(必要) | 字符串长度大于0且小于等于256。 | 接口调用失败,当次设置无效。 |
causedBy | 异常原因(必要) | 字符串小于等于512,超长会截取。 | 不涉及 |
errorDump | 异常信息(可选) | 字符串可为null或空串。 字符串小于等于10000,超长会截取。 | 不涉及 |
示例:
AlibabaCloudRUM().setCustomException("custom exception type",
"caused by customer",
"Custom error dump");
自定义事件
SDK支持上报自定义事件。调用相应的接口,并传入相应的参数,可完成自定义事件数据的统计功能。
Future<void> setCustomEvent(String name, {String? group, String? snapshots, double? value, Map<String, String>? attributes})
参数 | 说明 | 参数限制 | 失败结果 |
name | 事件名称(必要) | 字符串小于等于512,超长会截取。 | 接口调用失败,当次设置无效。 |
group | 事件分组(可选) | 字符串可为null或空串。 字符串小于等于256,超长会截取。 | 不涉及 |
snapshots | 事件快照(可选) | 字符串可为null或空串。 字符串小于等于7000,超长截取。 | 不涉及 |
value | 事件值(可选) | Double类型。 | 不涉及 |
attributes | kv存储信息(可选) | 转JSON后长度在7000字符以内。 | 不涉及 |
示例:
AlibabaCloudRUM().setCustomEvent("search_shop",
group: "shop",
snapshots: 'Search: ${search.toString()}',
value: 1,
attributes: {"search": "xxxxx"});
自定义日志
SDK支持上报自定义日志信息。调用相应的接口,并传入相应的参数,可完成自定义日志数据的统计功能。
Future<void> setCustomLog(String logInfo, {String? name, String? snapshots, String? level, Map<String, String>? attributes})
参数 | 说明 | 参数限制 | 失败结果 |
logInfo | 日志信息(必要) | 字符串长度大于0且小于等于10000,超长截取。 | 接口调用失败,当次设置无效 |
name | 日志名称(可选) | 字符串长度大于0且小于等于256 | 不涉及 |
snapshots | 日志快照(可选) | 字符串可为null或空串。 字符串小于等于7000,超长会截取。 | 不涉及 |
level | 日志等级(可选) | 字符串长度大于0且小于等于256,默认为INFO。 | 不涉及 |
attributes | 日志附加信息(可选) | Map可为空或空集。 转JSON后,字符串长度与logInfo共享,否则接口调用失败。 | 不涉及 |
示例:
AlibabaCloudRUM().setCustomLog("2024-08-20 14:00:05 Print shopinfo info.",
name: "shop",
snapshots: 'Shop: ${shop.toString()}',
level: "DEBUG",
attributes: {"shopId": "xxxxx", "shopName": "yyyyy"});
Flutter错误回调
由于Flutter对错误的监控无法逐层传递,因此AlibabaCloudRUM插件对同步、异步接口进行监控后,应用内原有的错误监听会失效。因此,Flutter插件提供了统一的错误回调接口。
void onRUMErrorCallback(callback(Object? error, StackTrace? stack, bool isAsync))
回调接口参数说明:
参数 | 类型 | 说明 |
error | Object | 错误原因 |
stack | StackTrace(可选) | 错误堆栈 |
isAsync | bool(可选) | 是否为异步错误 |
示例:
AlibabaCloudRUM().onRUMErrorCallback((error, stack, isAsync) => {
// 处理error事件
// ...
});