全部產品
Search
文件中心

Simple Log Service:接入小程式的使用者體驗資料

更新時間:Aug 27, 2024

本文介紹如何通過Log ServiceSDK接入小程式的Web使用者體驗資料。

前提條件

已建立1.1.0及以上版本的全棧可觀測執行個體。具體操作,請參見建立全棧可觀測執行個體

安裝和初始化

本文以接入微信小程式的資料為例。

  1. 登入Log Service控制台

  2. 日誌應用地區的智能營運頁簽下,單擊全棧可觀測

  3. 在執行個體列表中,單擊目標執行個體。

    重要

    該執行個體需為1.1.0及以上版本。

  4. 在左側導覽列中,選擇使用者體驗監控 > 資料接入

  5. 接入資料對話方塊中,完成如下配置。

    1. 單擊微信小程式,然後單擊下一步image

    2. 配置基礎資訊。

      參數

      說明

      環境

      設定環境資訊後,當您將不同環境(開發、測試、整合)中的小程式使用者體驗資料接入到同一個執行個體中時,資料中將被添加環境資訊,便於您區分不同環境中的小程式的使用者體驗資料。

      服務名

      設定服務名後,當您將不同的服務(網站、業務、部門)中的小程式使用者體驗資料接入到同一個執行個體中時,資料中將被添加服務資訊,便於您區分不同服務中的小程式使用者體驗資料。

      上報請求數據

      開啟上報請求數據開關,表示允許SDK上報API請求資料(fetch、xhr)。

      鏈路追蹤

      開啟鏈路追蹤開關,表示允許SDK上報前後端鏈路追蹤資料。

      完成上述配置後,系統將產生對應的安裝和初始化指令碼。

  1. 複製上述指令碼,進行SDK安裝和初始化。

    小程式相關的SDK只支援通過NPM進行安裝。

    1. 安裝NPM包。

      npm install @aliyun-sls/web-trace-mini
    2. 初始化SDK。

      其中,SLS_TRACER還支援添加其他配置項。更多資訊,請參見附錄一:SLS_TRACER配置項

      import { SLS_TRACER } from '@aliyun-sls/web-trace-mini';
      
      SLS_TRACER.init({
        host: 'cn-beijing.log.aliyuncs.com',// 您在建立執行個體時所綁定的Project的訪問網域名稱。
        project: 'demo-test',//  您在建立執行個體時所綁定的Project。
        logstore: 'demo-test-raw', //Logstore名稱。建立執行個體後,Log Service會自動產生一個名為{instance}-raw的Logstore。
        workspace: 'demo-test',// 工作空間名稱,即執行個體ID。
        env:  'prod',// 自訂環境。
        service:  'miniprogram',// 服務名稱。
        enableRequest:  true,// 上報API請求資料。
        enableTrace:  true // 開啟鏈路監控。
      })
  2. 接入SDK後,訪問您的測試小程式,產生測試資料。

  3. 返回到Log Service控制台的全棧可觀測應用中。

  4. 接入資料對話方塊中,單擊下一步

  5. 接入資料設定精靈的檢查數據步驟中,單擊檢查數據

  6. 確認資料無誤後,單擊完成

上報自訂事件

SLS_TRACER SDK支援自動對某些事件進行監控,同時還支援您手動上報日誌。

SLS_TRACER.addLog()介面用於上報自訂事件,該介面支援定義一個JSON格式的參數及支援嵌套JSON格式。上報的資料支援使用Log Service查詢和分析語句。SLS_TRACER.addLog()介面的調用方式如下:

  SLS_TRACER.addLog({
    key: 'value',
    number: 1,
    array: [],
    json: {
      json: 'json'
    }
  })

支援部分參數熱更新

在某些情境中,不一定能立即擷取uid等使用者參數,SLS_TRACER SDK允許在SDK初始化後動態設定這部分參數。當前支援熱更新的參數有uidnicknameenvserviceversioncustom。調用方式如下所示。

SLS_TRACER.setOptions({
  uid: 'uid',
  nickname: 'newnickname',
  env: 'newEnv',
  custom: {
    c: 'newCustom',
  },
  version: 'newVersion',
  service: 'newService',
})

自訂外掛程式

SLS_TRACER SDK支援在上報資料過程中修改資料。

// 必須在init之前調用。
SLS_TRACER.use({
  name: 'myPlugin',
  run: function () {
    this.subscribe(
      '*', // 訂閱所有的資料來源。如果是自訂訂閱的事件,必須設定為星號(*)。
      (data, next) => {
        //
        //
        // 可以根據data.otBase.t,確定資料類型。
        //
        //
        
        next(data) // 將新的資料傳入下一個處理者時,必須調用,否則該條資料會停止上報。
      },
      0, // 通過優先順序(0~99),控制執行外掛程式的順序。
    )
  },
})

// data的資料類型。
export interface NotifyData<OT extends Partial<OTTrace>, Extra = Record<string, any> | undefined> {
  otBase: OT
  extra: Extra
}

附錄一:SLS_TRACER配置項

參數名

類型

是否必填

範例

描述

project

string

'my-project'

您在建立執行個體時所綁定的Project名稱。

host

string

'cn-hangzhou.log.aliyuncs.com'

您在建立執行個體時所綁定的Project的訪問網域名稱。如何擷取,請參見公網

logstore

string

'my-logstore-raw'

建立執行個體後,Log Service會自動產生一個名為{instance}-raw的Logstore。其中{instance}為執行個體ID。

此處需配置為該Logstore。

workspace

string

'my-workspace'

工作空間名稱,即執行個體ID。

uid

string

'123456'

使用者ID。

nickname

string

'Alice'

使用者暱稱。

env

string

'prod'

自訂環境。

service

string

'miniprogram'

服務名稱。

version

string

'1.0.0'

版本號碼。

custom

Record<string, any>

{ key: 'value' }

自訂參數。

該欄位用於儲存應用程式中的自訂資訊,可以是任何類型的JSON對象。

trackTimeThreshold

number

5

發送資料的時間閾值,單位:秒(s)。預設值:2。

0表示立即發送。

trackCountThreshold

number

20

發送資料的條數閾值。預設值:10。

enableTrace

boolean

true

是否開啟鏈路追蹤功能。

enableTraceRequestConfig

(((value: string) => boolean) | string | RegExp)[]

需要開啟Trace功能的請求。

該參數為數群組類型,包含需要開啟Trace功能的請求的類型和URL。

customTraceHeaders

Record<string, string>

Trace Header。該欄位用於在發送請求時自訂Trace Header。

enableRequest

boolean

true

是否上報請求資料。

ignoreRequestConfig

(((value: string, status: number) => boolean) | string | RegExp)[]

不需要上報的請求。

該參數為數群組類型,包含不需要上報的請求的類型和URL。

enableRequestBodyConfig

IEnableTrackRequestBody

需要記錄Body的請求。該欄位為一個對象,包含需要記錄Body的請求的類型和URL。

enableRuntimeError

boolean

true

是否上報JS錯誤。

ignoreRuntimeErrorConfig

(((value: string) => boolean) | string | RegExp)[]

運行時需要忽略的錯誤。

該參數為數群組類型,包含需要忽略的錯誤類型。

enableResourceError

boolean

true

是否上報JS資源錯誤。

enableResourcePerf

boolean

true

是否上報資源效能資料(js、css、image、audio、video)。

ignoreResourceConfig

(((value: string) => boolean) | string | RegExp)[]

需要忽略的資源請求。

該參數為數群組類型,包含需要忽略的資源的類型和URL。

enablePerf

boolean

true

是否上報頁面載入效能資料。

enableConsoleLog

enum

'warn'

記錄層級,取值為error、warn、log、info、debug、false。

配置為info 則只記錄 error、warn、info 層級的日誌。

platformSDK

any

wx

小程式平台的SDK。

已經適配的平台可以不填寫。適配平台如下:

  • wx:微信小程式、微信小遊戲

  • my:支付寶小程式

  • tt:位元組跳動小程式

  • dd:DingTalk小程式

  • qq:QQ小程式、QQ小遊戲

  • swan:百度小程式。

platformRequestName

string

request

小程式平台SDK發送請求的介面名稱,例如微信小程式的為request。

預設使用request或httpRequest。

附錄二:日誌欄位詳情

小程式使用者體驗資料的欄位詳情與Web使用者體驗資料類似。更多資訊,請參見附錄二:日誌欄位詳情