SDK配置参考

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事件
    // ...
  });