このトピックでは、Simple Log Service SDKを使用してミニプログラムからユーザーエクスペリエンスデータを収集する方法について説明します。
前提条件
Full-stack Observabilityインスタンスが作成され、インスタンスのバージョンは1.1.0以降です。 詳細は、インスタンスの作成をご参照ください。
インストールと初期化
このトピックでは、WeChat miniプログラムのデータを収集します。
ログアプリケーション セクションで、インテリジェント O&M タブをクリックします。 次に、フルスタックオブザーバビリティ をクリックします。
インスタンスリストで、インスタンスをクリックします。
重要インスタンスのバージョンは1.1.0以降である必要があります。
左側のナビゲーションウィンドウで、
を選択します。[データのインポート] ダイアログボックスで、次の操作を実行します。
[WeChat Mini Program] をクリックします。 そして、[次へ] をクリックします。
基本パラメータを設定します。
パラメーター
説明
環境
環境情報を指定すると、ミニプログラムからインスタンスに収集されたユーザーエクスペリエンスデータに環境情報が追加されます。 開発、テスト、または統合環境を指定できます。 これにより、さまざまな環境のミニプログラムから収集されたユーザーエクスペリエンスデータを区別できます。
サービス名
サービス名を指定すると、ミニプログラムからインスタンスに収集されたユーザーエクスペリエンスデータにサービス情報が追加されます。 Webサイト、ワークロード、または部門を指定できます。 これにより、さまざまなサービスのミニプログラムから収集されたユーザーエクスペリエンスデータを区別することができます。
リクエストデータをレポート
リクエストデータをレポート をオンにすると、Simple Log Service SDKは、fetchやxhrなどのAPIリクエストデータをアップロードします。
Tracing Analysis
Tracing Analysisをオンにすると、Simple Log Service SDKはフロントエンドとバックエンドのトレースデータをアップロードします。
設定が完了すると、Simple Log Serviceがインストールおよび初期化スクリプトを生成します。
上記のスクリプトをコピーして、Simple Log Service SDKをインストールおよび初期化します。
Simple Log Service SDKは、npmを使用してのみインストールできます。
npmパッケージをインストールします。
npm install @aliyun-sls/web-trace-mini
SDK を初期化します。
他の設定項目をSLS_TRACERに追加できます。 詳細については、「付録1: SLS_TRACER設定項目」をご参照ください。
import { SLS_TRACER } from '@aliyun-sls/web-trace-mini'; SLS_TRACER.init({ host: 'cn-beijing.log.aliyuncs.com',// The endpoint of the project that you specified when you created the instance. project: 'demo-test',// The project that you specified when you created the instance. logstore: 'demo-test-raw', // The name of the Logstore. After the instance is created, Simple Log Service automatically creates a Logstore named {instance}-raw. workspace: 'demo-test',// The name of the workspace. Enter the instance ID. env: 'prod',// The custom environment. service: 'miniprogram',// The name of the service. enableRequest: true,// Upload API request data. enableTrace: true // Enable trace monitoring. })
Simple Log Service SDKをインストールして初期化したら、テストミニプログラムにアクセスしてテストデータを生成します。
Simple Log ServiceコンソールでフルスタックのObservabilityアプリケーションに戻ります。
[データのインポート] ダイアログボックスで、次へ をクリックします。
では、データを確認中のステップデータのインポートダイアログボックスで、データを確認中.
データが有効であることを確認したら、完成 をクリックします。
カスタムイベントのアップロード
SLS_TRACER SDKは、特定のイベントの自動モニタリングをサポートし、ログをアップロードできます。
SLS_TRACER.addLog()
インターフェイスは、カスタムイベントのアップロードに使用されます。 このインターフェイスはネストされたJSONデータをサポートし、JSON形式でパラメーターを指定できます。 クエリステートメントを使用して、Simple Log Serviceでアップロードされたデータをクエリおよび分析できます。 次のサンプルコードは、SLS_TRACER.addLog()
インターフェイスを呼び出す方法の例を示しています。
SLS_TRACER.addLog({
key: 'value',
number: 1,
array: [],
json: {
json: 'json'
}
})
パラメータのローリング更新を実行する
シナリオによっては、uidなどの一部のユーザーパラメーターをすぐに取得できない場合があります。 SLS_TRACER SDKでは、SLS_TRACER SDKの初期化後にパラメータを動的に設定できます。 ローリング更新は、uid
、nickname
、env
、service
、version
、およびcustom
パラメーターで実行できます。 次のサンプルコードは、インターフェイスを呼び出す方法の例を示しています。
SLS_TRACER.setOptions({
uid: 'uid',
nickname: 'newnickname',
env: 'newEnv',
custom: {
c: 'newCustom',
},
version: 'newVersion',
service: 'newService',
})
カスタムプラグインの設定
SLS_TRACER SDKでは、データのアップロード中にデータを変更できます。
// You must call the following interface before you initialize the SDK.
SLS_TRACER.use({
name: 'myPlugin',
run: function () {
this.subscribe(
'*', // Subscribe to all data sources. If you want to subscribe to custom events, set the value to an asterisk (*).
(data, next) => {
//
//
// Determine the data type based on data.otBase.t.
//
//
next(data) // When new data is passed to the next processor, the next(data) method must be called. Otherwise, the system stops uploading the data.
},
0, // Specify the priority of custom plug-ins. The priority range is 0 to 99.
)
},
})
// The data type of the data.
export interface NotifyData<OT extends Partial<OTTrace>, Extra = Record<string, any> | undefined> {
otBase: OT
extra: Extra
}
付録1: SLS_TRACER設定項目
パラメーター | タイプ | 必須 | 例 | の説明 |
project | String | 課金されます | 「私のプロジェクト」 | インスタンスの作成時に指定したプロジェクト。 |
host | String | 課金されます | 'cn -hangzhou.log.aliyuncs.com' | インスタンスの作成時に指定したプロジェクトのエンドポイント。 詳細については、「エンドポイント」をご参照ください。 |
logstore | String | 課金されます | 「my-logstore-raw」 | インスタンスの作成後、Simple Log Serviceは {instance}-rawという名前のLogstoreを自動的に作成します。 {instance} はインスタンスIDを指定します。 このパラメーターをLogstoreの名前に設定する必要があります。 |
ワークスペース | String | 課金されます | 「私のワークスペース」 | ワークスペースの名前を設定します。 インスタンスIDを入力します。 |
uid | String | 課金されません | 「1234556」 | ユーザー ID。 |
ニックネーム | String | 課金されません | 「アリス」 | ユーザーのニックネーム。 |
env | String | 課金されません | 「製品」 | カスタム環境。 |
service | String | 課金されません | 「ミニプログラム」 | サービスの名前です。 |
version | String | 課金されません | '1.0.0' | バージョン番号。 |
custom | レコード <string, any> | 課金されません | {key: 'value'} | カスタムパラメーター。 このパラメータは、ミニプログラムのカスタム情報を格納するために使用されます。 任意のタイプのJSONオブジェクトを指定できます。 |
trackTimeThreshold | 数値 | 課金されません | 5 | データが送信される間隔。 単位は秒です。 デフォルト値:2 値0は、データが直ちに送信されることを指定する。 |
trackCountThreshold | 数値 | 課金されません | 20 | 一度に送信できるデータエントリの数。 デフォルト値は 10 です。 |
enableTrace | Boolean | 課金されません | true | トレース機能を有効にするかどうかを指定します。 |
enableTraceRequestConfig | ((((value: string) => boolean) | string | RegExp)[] | ✕ | なし | トレース機能を有効にするリクエスト。 このパラメーターは、トレース機能を有効にする要求のタイプとURLを含む配列です。 |
customTraceHeaders | <string, string> を記録する | ✕ | なし | トレースヘッダー。 このパラメーターは、リクエストを送信するときにカスタムトレースヘッダーを設定するために使用されます。 |
enableRequest | Boolean | 課金されません | true | リクエストデータをアップロードするかどうかを指定します。 |
ignoreRequestConfig | ((((value: string, status: number) => boolean) | string | RegExp)[] | ✕ | なし | アップロードする必要のないリクエスト。 このパラメーターは、アップロードする必要のないリクエストのタイプとURLを含む配列です。 |
enableRequestBodyConfig | IEnableTrackRequestBody | ✕ | なし | ボディを記録する必要があるリクエスト。 このパラメーターは、本文を記録する必要があるリクエストのタイプとURLを含むオブジェクトです。 |
enableRuntimeError | Boolean | 課金されません | true | JavaScriptエラーのデータをアップロードするかどうかを指定します。 |
ignoreRuntimeErrorConfig | ((((value: string) => boolean) | string | RegExp)[] | ✕ | なし | ランタイム中に無視するエラー。 このパラメーターは、無視するエラーの型を含む配列です。 |
enableResourceError | Boolean | 課金されません | true | JavaScriptリソースエラーのデータをアップロードするかどうかを指定します。 |
enableResourcePerf | Boolean | 課金されません | true | js、css、image、audio、videoなどのリソースのパフォーマンスデータをアップロードするかどうかを指定します。 |
ignoreResourceConfig | ((((value: string) => boolean) | string | RegExp)[] | ✕ | なし | リソースを無視するリクエスト。 このパラメーターは、無視するリソースの型とURLを含む配列です。 |
enablePerf | Boolean | 課金されません | true | ページ読み込みのパフォーマンスデータをアップロードするかどうかを指定します。 |
enableConsoleLog | enum | 課金されません | 「警告」 | ログレベル。 有効な値: error、warn、log、info、debug、およびfalse。 値をinfoに設定すると、エラー、warn、およびinfoレベルのログのみが記録されます。 |
platformSDK | 任意 | 課金されません | wx | 小型プログラムプラットホームのためのSDK。 サポートされているプラットフォームでは、このパラメーターを空のままにします。 次のプラットフォームがサポートされています。
|
platformRequestName | String | 課金されません | request | ミニプログラムプラットフォーム用にSDKによって送信されるリクエスト名。 WeChat miniプログラム用のSDKを使用する場合は、パラメーターをrequestに設定します。 デフォルト値: requestまたはhttpRequest。 |
付録2: ログフィールドの詳細
ミニプログラムのユーザ体験データ内のログフィールドは、ウェブページのユーザ体験データ内のログフィールドと同様である。 詳細については、「付録2: ログフィールドの詳細」をご参照ください。