SDK API

本文介绍各插件配置项说明、注意事项等。

SDK初始化

SDK初始化配置项说明

字段

类型

默认值

是否必填

说明

appKey

string

EMAS控制台申请应用后分配的appKey

appSecret

string

EMAS控制台申请应用后分配的appSecret

appVersion

string

当前应用的版本号 非必填

channel

string

当前应用渠道号

userNick

string

用户昵称

userId

string

用户id

loggerLevel

string

日志级别 'debug': debug级别 不填写则默认线上模式

示例

// SDK 初始化
var apm = new window.EMAS.APM({
  appKey: 'appKey', // EMAS 控制台创建应用后分配
  appSecret: 'appSecret', // EMAS 控制台创建应用后分配
  appVersion: 'appVersion', // 应用版本号
  channel: 'channel', // 应用渠道号
  userNick: 'userNick', // 用户昵称
  userId: 'userId', // 用户id
});

插件配置

插件配置项说明

插件名

字段

类型

默认值

是否必填

说明

pv

autoPV

boolean

true

是否自动发送PV数据,打开后会在SDK启动时自动进行一次上报。

enableHistory

boolean

false

用于History Router的单页面应用,当开启后页面切换时会自动上报PV。需要开启autoPv,配合使用。

enableHash

boolean

false

用于Hash Router的单页面应用,当开启后页面切换时会自动上报PV。需要开启autoPv,配合使用。

jsError

disable

boolean

false

jsError插件开关

disableError

boolean

false

是否关闭error类型的错误检测

disableUnhandledRejection

boolean

false

是否关闭unhandledRejection类型的错误检测

ignoreList

(string|RegExp|function)[]

[]

error.message匹配,忽略能匹配的JS错误

request

disable

boolean

false

request插件开关

disableFetch

boolean

false

是否忽略Fetch类型的错误

disableXHR

boolean

false

是否忽略XHR类型的请求

ignoreList

(string|RegExp|function)[]

[]

requestUri匹配,忽略能匹配的请求

resource

disable

boolean

false

resource插件开关

ignoreList

(string|RegExp|function)[]

[]

requestUri匹配,忽略能匹配的请求

whiteScreen

disable

boolean

false

白屏插件开关

when

string[]

["timeout", "visibilitychange", "error", "unhandledrejection", "load"]

进行白屏检测的时机,默认包括所有支持的时机

timeout

number

3000

when包括timeout时,对应触发检测的倒计时时间

performance

disable

boolean

false

性能插件开关

disableCLS

boolean

false

是否开启cls指标检测

disableLCP

boolean

false

是否开启lcp指标检测

disableINP

boolean

false

是否开启inp指标检测

disableFCP

boolean

false

是否开启fcp指标检测

disableFP

boolean

false

是否开启fp指标检测

disableTTFB

boolean

false

是否开启ttfb指标检测

disableNavigationTiming

boolean

false

是否开启navigationTiming指标检测

SDK启动

/**
* 启动SDK
* @method start
* @params {{ [key: string]: Record<string, string> }} config 插件配置项
* @returns {object} 返回各插件实例对象,用于调用插件实例对象API
*/
start(config?: { [key: string]: Record<string, any> } ) : object

示例

const apm = new window.EMAS.APM({
  appKey: 'appKey', // EMAS 控制台创建应用后分配
  appSecret: 'appSecret', // EMAS 控制台创建应用后分配
});
const plugins = apm.start({
  pv: {
    autoPv: true,
    enableHistory: true,
  },
  request: {
    disableXHR: true,
    ignoreList: ['https://xxx.xx.xx'],
  },
});

// 获取插件实例
const pv_plugin = plugins.pv;

手动上报PV数据

当自动上报PV不满足的情况下,可以使用手动上报模式

/**
*  手动发送PV埋点
*/
sendPV(): void;

示例

const apm = new window.EMAS.APM({
  appKey: 'appKey', // EMAS 控制台创建应用后分配
  appSecret: 'appSecret', // EMAS 控制台创建应用后分配
});
const plugins = apm.start({
  pv: {
    autoPv: false,
  },
});

// 手动上报PV
plugins.pv.sendPV();

白屏

白屏得分:

参考业界普遍定义,计算DOM深度得分判断是否白屏。通过遍历页面DOM树上的节点,每遇到一个可视元素,根据深度计算白屏得分:,所有可视元素得分总和得到页面白屏得分。

白屏得分越低越可能白屏,默认DOM得分少于1.5为极有可能白屏,进行上报。