日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SDK配置參考

ARMS用戶體驗監控提供一系列SDK配置項,讓您能夠通過設置參數來滿足額外需求。本文介紹Web & H5應用常用的SDK配置。

SDK 配置

參數

類型

描述

是否必填

默認值

pid

string

應用ID

-

endpoint

string

上報地址

-

env

string

應用環境:

  • prod:線上環境

  • gray:灰度環境

  • pre:預發環境

  • daily:日常環境

  • local:本地環境

prod

version

string

應用版本

-

user

object

User配置

user.idSDK默認生成

spaMode

string

SPA模式,監聽頁面事件并重新上報PV,適用于單頁面應用場景。

  • hash

  • history

  • auto

  • false

false

beforeReport

function

Repoter發送RUM事件之前

-

reportConfig

object

上報配置,詳細說明請參見reportConfig 配置

-

sessionConfig

object

Session的采樣、存儲等配置,詳細說明請參見sessionConfig 配置

-

collectors

object

Collector(采集器)配置

-

parseViewName

function

解析視圖名稱(view.name),入參為當前頁面的URL。

-

parseResourceName

function

解析資源名稱(resource.name),入參為當前資源的URL。

-

evaluateApi

function

自定義解析API事件,詳細說明請參見 evaluateApi 配置

-

filters

object

事件過濾配置,詳情說明請參見 filters 配置

-

whiteScreen

object

白屏監控配置,詳細說明請參見 whiteScreen 配置

-

properties

object

自定義屬性,可對所有事件生效,詳情說明請參見 properties 配置

-

使用CDN加載情況下,訪問 SDK 監控實例,請使用全局命名空間 RumSDK.default。

const ArmsRum = window.RumSDK.default;
// 訪問 RumSDK 需確保SDK已經完成加載
// 如果SDK加載前沒有定義 __rum 配置,可在此初始化
ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
});
// 以下繼續使用,NPM 和 CDN 一致
ArmsRum.setConfig('env', 'pre');

user 配置

參數

類型

描述

是否必填

默認值

id

string

用戶ID,不可修改。

SDK默認生成

tags

string

標簽

-

name

string

名稱

-

示例

說明

如果需要關聯業務自有賬號體系,建議使用user.name或者user.tags ,而不是修改user.id。強制覆蓋SDK生成的user.id ,會影響UV的計算。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  user: {
    name: 'your user.name',
    tags: 'your user.tags',
  },
});

reportConfig 配置

參數

類型

描述

是否必填

默認值

flushTime

number

上報時間間隔

取值范圍:[0, 10000]

3000

maxEventCount

number

一次上報最大數量

取值范圍:[1, 100]

20

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  reportConfig: {
    flushTime: 0, // 立即上報
    maxEventCount: 50, // 一次最多上報數量
  },
});

sessionConfig 配置

參數

類型

描述

是否必填

默認值

sampleRate

number

Session采樣率:[0, 1]

50%采樣率就是0.5。

1

maxDuration

number(ms)

Session最大持續時間,默認24小時。

86400000

overtime

number(ms)

Session超時時間,默認一小時。

3600000

storage

string

Session相關的數據存儲位置。

  • cookie

  • localStorage

localStorage

Storage存儲了user.idsession信息 :

  • _arms_uid:唯一標識用戶ID,對應user.id。

  • _arms_session:具備語義化的Session信息。

    • sessionId:Session唯一標識。

    • sampled:是否命中采樣。

    • startTime:Session的開始時間戳。

    • lastTime:Session最后一次活躍時間戳。

`${sessionId}-${sampled}-${startTime}-${lastTime}`

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  sessionConfig: {
    sampleRate: 0.5, // 采樣率50%
    maxDuration: 86400000,
    overtime: 3600000,
    storage: 'cookie',
  },
});

collectors 配置

CollectorRUM SDK用于收集頁面監控數據的最小單元。目前RUM SDK內置了API、static Resource等豐富的采集器。

參數

類型

描述

是否必填

默認值

perf

boolean | object

監聽頁面的性能數據。

true

webvitals

boolean | object

監聽頁面的WebVitals數據。

true

api

boolean | object

監聽API請求。

true

staticResource

boolean | object

監聽靜態資源請求。

true

consoleError

boolean | object

監聽Console錯誤。

true

jsError

boolean | object

監聽JS錯誤。

true

action

boolean | object

監聽用戶行為。

true

示例

關閉監聽用戶Click行為。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  collectors: {
    action: false,
  },
});

evaluateApi 配置

evaluateApi提供對API(XMLHttpRequest/fetch)事件的自定義解析。以下為SDK傳入的三個參數:

參數

類型

描述

options

object

請求參數,包括url、headers、data等,根據具體請求方式有所差異。

response

object

請求響應體。

error

Error

可選參數,當請求失敗才會傳入。

該函數支持異步函數,返回Promise<IApiBaseAttr>,IApiBaseAttr的定義如下:

參數

類型

描述

是否必填

name

string

API名稱,一般是對URL的收斂,最大1000字符。

例如URL/list/123, 收斂name字段后顯示為/list/$id

重要

該字段的優先級高于parseResourceName返回的內容。

message

string

API信息,一個簡短的描述API概況字符串,最大1000字符。

success

number

請求成功狀態:

  • 1:成功

  • 0:失敗

  • -1:未知

duration

number

API總耗時。

status_code

number | string

API狀態碼。

snapshots

string

API快照。

說明

可用于存儲reqHeaders、params、resHeaders等,具體字段組成方式可自行決定。該字段主要用于排查接口異常的原因,沒有索引,不能根據該字段進行篩選或聚合,只接受字符串類型,最大5000字符。

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  evaluateApi: async (options, response, error) => {
    let respText = '';
    // 當前為使用fetch請求的情況
    if (response && response.text) {
      respText = await response.text();
    }
    // 返回的字段會覆蓋默認內容,不返回的字段會依然使用SDK自定生成內容
    return {
      name: 'my-custom-api',
      success: error ? 0 : 1,
      // 以下可選
      snapshots: JSON.stringify({
        params: 'page=1&size=10', // 請求入參
        response: respText.substring(0, 2000), // 返回值
        reqHeaders: '', // 請求頭
        resHeaders: '', // 響應頭
      }),
      properties: {
        prop_msg: 'custom msg',
        prop_num: 1,
      },
    };
  },
});

filters 配置

filters 用于過濾無需上報的事件,目前支持 resource 和 exception 兩種事件。

參數

類型

描述

是否必填

resource

MatchOption | MatchOption[]

對采集到的資源事件進行過濾,包括靜態資源和API(XMLHttpRequest/fetch)。

exception

MatchOption | MatchOption[]

對采集到的異常事件進行過濾。

MatchOption

type MatchOption = string | RegExp | ((value: string) => boolean);
  • string:匹配任何以該值開頭的URL,如https://api.aliyun.com可以匹配https://api.aliyun.com/v1/resource

  • RegExp:使用提供的RegExpURL執行test。

  • function:以URL作為參數進行計算,返回true表示匹配。

當傳入為 MatchOption[] 時,條件順序執行,有一項滿足就會被過濾。

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  filters: {
    // 過濾異常
    exception: [
      'Test error', // 以'Test error'開頭的error.message
      /^Script error\.?$/, // 正則表達式匹配 error.message
      (msg) => {
        return msg.includes('example-error');
      },
    ],
    // 過濾資源或API
    resource: [
      'https://example.com/', // 以'https://example.com/'開頭的resource
      /localhost/i,
      (url) => {
        return url.includes('example-resource');
      },
    ],
  },
});

whiteScreen 配置

白屏監控僅支持瀏覽器端(Chrome 40+,IE 9+)。

參數

類型

描述

detectionRules

Array<DetectionRule>

包含一個或多個白屏檢測規則,按配置順序和延時大小觸發檢測。

DetectionRule

參數

類型

是否必填

描述

默認值

target

String

指定白屏檢測的目標元素的選擇器。當檢測觸發時,系統將對匹配此選擇器的元素區域進行白屏檢測。

test_when

Array

列出觸發白屏檢測的事件,檢測將在這些事件發生后啟動,可選值:

  • LOAD:頁面加載完成。

  • ERROR:發生全局JavaScript錯誤。

  • ROUTE_CHANGE:路由變化(包括hashhistory)。

  • LEAVE:關閉頁面前。

delay

Number

配合test_when使用。在指定事件(不包括ERRORLEAVE)發生后,等待指定時間后開始白屏檢測。(單位:毫秒)。

0

tester

String | Function

定義使用的白屏檢測方法。

  • HAS_CONTENT:內置檢測方法,判斷目標節點內是否含有 textContent。

  • SAMPLE:內置檢測方法,通過設置采樣點,判斷采樣點位置最頂層的DOM元素是否包含在給定的元素集合中,以計算白屏率。

  • SCREENSHOT:內置檢測方法,通過canvas截圖,基于像素比對計算白屏率。

  • 自定義檢測函數:入參為目標元素,返回值類型為CustomTesterResultPromise<CustomTesterResult>,類型聲明見表格下方。

ignoreUrlList

Array<String>

需要忽略檢測的URL列表,當頁面URL與列表中的任何一個匹配時,不進行白屏檢測。

[]

configOptions

ConfigOptions

tester搭配使用,為所選tester提供具體的配置參數。

詳見ConfigOptions的配置項說明。

CustomTestResult的類型聲明:

type CustomTesterResult = {
  /**
   * 是否存在內容,如果為`true`則表示有內容,`false`表示發生白屏。
   */
  hasContent: boolean;

  /**
   * 錯誤信息
   */
  message?: string;

  /**
   * 異常的快照數據
   */
  snapshot?: Record<string, any>;
}

ConfigOptions

參數僅在關聯方法中生效。

參數

類型

關聯方法

描述

默認值

colorRange

Array<Srting>

SCREENSHOT

視為白屏的顏色集合,用于像素比對時判斷當前像素區塊是否為“全白”,格式為rgb(r, g, b)

['rgb(255, 255, 255)']

fillColor

String

SCREENSHOT

填充顏色。在截圖時會對圖片、視頻、canvas、svg、iframe 等元素進行色塊填充,填充色不能是colorRange里配置的任何一種顏色。

'rgba(0, 100, 200, 255)'

horizontalOffset

Number

SCREENSHOT

白屏檢測區域左側邊緣相對于目標元素左側邊緣的水平偏移量,用于過濾目標元素的左側菜單。

0

verticalOffset

Number

SCREENSHOT

白屏檢測區域上邊緣相對于目標元素上邊緣的垂直偏移量,用于過濾目標元素的 topBar。

0

pixels

Number

SCREENSHOT

指定白屏檢測時,采樣像素區塊的大小,區塊的大小為pixels * pixels

10

threshold

Number

SCREENSHOT

SAMPLE

白屏率閾值,當白屏率大于該值時,認為發生白屏。

0.8

dpr

Number

SCREENSHOT

設置快照圖片的縮放比例。

0.3

ignoreElements

Array<Srting>

SCREENSHOT

需要忽略檢測的元素的 CSS 選擇器,這些元素在截圖時將被忽略。

[]

sampleMethod

1 | 2 | 3

SAMPLE

采樣方法:

  • 1:十字采樣

  • 2:交叉十字采樣

  • 3:米字采樣

2

checkPoints

Number

SAMPLE

設置徑向的采樣點數量。

  • 對于十字采樣或交叉十字采樣,總采樣點數量為 4 * checkPoints + 1

  • 對于米字采樣,總采樣點數量為 8 * checkPoints + 1

10

whiteBoxElements

Array<Srting>

SAMPLE

白屏元素的 CSS 選擇器列表,當采樣點的頂層 DOM 元素匹配此列表中的選擇器時,增加白屏計數。

[]

debug

Boolean

SCREENSHOT

SAMPLE

是否開啟調試模式,在調試模式下可以在開發者工具里看到打印的檢測信息。

false

示例

SCREENSHOT 截圖檢測法

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  whiteScreen: {
    detectionRules: [{
      target: '#root',
      test_when: ['LOAD', 'ERROR', 'ROUTE_CHANGE', 'LEAVE'],
      delay: 5000,
      tester: 'SCREENSHOT',
      configOptions: {
        colorRange: ['rgb(255, 255, 255)', 'rgb(0, 0, 0)'],
        threshold: 0.9,
        pixels: 10,
        horizontalOffset: 210,
        verticalOffset: 50,
      },
    }],
  },
});

SAMPLE 采樣法

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  whiteScreen: {
    detectionRules: [{
      target: '#root',
      test_when: ['LOAD', 'ERROR', 'ROUTE_CHANGE', 'LEAVE'],
      delay: 5000,
      tester: 'SAMPLE',
      configOptions: {
        sampleMethod: 2,
        checkPoints: 10,
        threshold: 0.9,
        whiteBoxElements: ['.el-skeleton'],
      },
    }],
  },
});

CUSTOM 自定義檢測函數

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpint",
  whiteScreen: {
    detectionRules: [{
      target: '#root',
      test_when: ['LOAD', 'ERROR', 'ROUTE_CHANGE', 'LEAVE'],
      delay: 5000,
      tester: async (element) => {
        // 自定義檢測函數主題
        return {
          hasContent: false,
          message: '自定義的錯誤信息',
          snapshot: {
            // 鍵值對可自定義
            checkPoints: 100,
            rate: 0.99,
            checkdata: '......',
          },
        };
      },
    }],
  },
});

properties 配置

PropertiesRUM提供的自定義屬性,可為任何上報事件配置該屬性。

參數

類型

描述

是否必填

[key: string]

string | number

  • key必須是符合JSON規范的字符串,key的最大長度為50字符,key超出部分會被截斷。

  • valuestring時,最大長度為2000字符。value為非 string | number時,該鍵值對會被移除。

使用evaluateApi、sendCustom、sendException、sendResource等可以單獨為某個事件增加properties,僅對單個事件生效。

全局properties和事件properties在存儲時會進行合并。事件properties優先級高于全局properties,合并時相同的key,事件properties會覆蓋全局properties。合并后properties鍵值對數量不可超過20對,超出會基于key進行排序后移除。

示例

全局配置properties時,所有上報的事件都會擁有。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  properties: {
    prop_string: 'xx',
    prop_number: 2,
    // key 和 value 超出范圍會被截斷
    more_than_50_key_limit_012345678901234567890123456789: 'yy',
    more_than_2000_value_limit: new Array(2003).join('1'),
    // 以下不符合要求的鍵值對會被移除
    prop_null: null,
    prop_undefined: undefined,
    prop_bool: true,
  },
});

其他配置

RUM SDK支持配置基于IPUserAgent等解析所得到的公共屬性,主動配置字段優先級高于自動解析。

參數

類型

描述

是否必填

device

object

設備信息

os

object

系統、容器信息

geo

object

行政地理信息

isp

object

運營商信息

net

object

網絡信息

以上字段具體可配置項請參考日志數據說明中公共屬性部分。

示例

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  geo: {
    country: 'your custom cuntry info',
    city: 'your custom city info',
  },
});

SDK API

RUM SDK開放API,用于修改上報自定義數據,動態修改SDK配置等。

getConfig

獲取SDK配置。

setConfig

修改SDK配置。

// 指定 key 設置
ArmsRum.setConfig('env', 'pre');

// 覆蓋設置
const config = ArmsRum.getConfig();
ArmsRum.setConfig({
  ...config,
  version: '1.0.0',
  env: 'pre',
});

sendCustom

上報自定義數據,必須包含typename兩個屬性,否則無法上報。屬性的具體業務意義可參考下表,實際使用需要自行定義業務語義。

參數

類型

描述

是否必填

type

string

類型

name

string

名稱

group

string

分組

value

number

properties

object

自定義屬性

ArmsRum.sendCustom({
  // 必選
  type: 'CustomEvnetType1',
  name: 'customEventName2',
  // 可選
  group: 'customEventGroup3',
  value: 111.11,
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});

sendException

上報自定義異常數據,必須包含namemessage兩個屬性,否則無法上報。

參數

類型

描述

是否必填

name

string

異常名稱

message

string

異常信息

file

string

異常發生文件

stack

string

異常堆棧信息

line

number

異常發生的行數

column

number

異常發生的列數

properties

object

自定義屬性

ArmsRUM.sendException({
  // 必選
  name: 'customErrorName',
  message: 'custom error message',
  // 可選
  file: 'custom exception filename',
  stack: 'custom exception error.stack',
  line: 1,
  column: 2,
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});

sendResource

上報自定義資源,必須包含name、typeduration三個屬性,否則無法上報。

參數

類型

描述

是否必填

name

string

資源名。

type

string

資源類型,例如:css、javascript、xmlhttprequest、fetch、api、image、font、other。

duration

string

請求耗時。

success

number

請求成功狀態:

  • 1:成功

  • 0:失敗

  • -1:未知

method

string

請求方法。

status_code

number | string

請求狀態碼。

message

string

請求消息。

url

string

請求地址。

trace_id

string

鏈路追蹤ID。

properties

object

自定義屬性。

ArmsRum.sendResource({
  // 以下必選
  name: 'getListByPage',
  message: 'success',
  duration: 800,
  // 以下可選
  url: 'https://www.aliyun.com/data/getListByPage',
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});