コンテンツにスキップ

RUM 設定

RUM 初期化設定

var rum = uni.requireNativePlugin("GCUniPlugin-RUM");
rum.setConfig({
    androidAppId: 'YOUR_ANDROID_APP_ID',
    iOSAppId: 'YOUR_IOS_APP_ID',
    errorMonitorType: 'all',
    deviceMonitorType: ['cpu', 'memory']
});
パラメータ名 パラメータ型 必須 説明
androidAppId string はい Android プラットフォームの appId
iOSAppId string はい iOS プラットフォームの appId
samplerate number いいえ サンプリングレート。範囲 [0,1]、デフォルト 1
sessionOnErrorSampleRate number いいえ エラー収集率。範囲 [0,1]、デフォルト 0、SDK 0.2.2 以上で対応
enableNativeUserAction boolean いいえ Native Action 追跡を有効にするかどうか。純粋な uni-app アプリケーションでは無効化を推奨。Android クラウドパッケージでは非対応
enableNativeUserResource boolean いいえ Native Resource 自動追跡を有効にするかどうか。Android クラウドパッケージでは非対応。uni-app は iOS 側でシステム API を介してネットワークリクエストを発行するため、有効にすると iOS リクエストが自動収集されます。この場合、iOS 側の手動 Resource 収集を無効にし、重複収集を避けてください
enableNativeUserView boolean いいえ Native View 自動追跡を有効にするかどうか。純粋な uni-app アプリケーションでは無効化を推奨
errorMonitorType string/array いいえ エラー補足モニタリングタイプ:allbatterymemorycpu
deviceMonitorType string/array いいえ ページモニタリングタイプ:allbattery(Android のみ)、memorycpufps
detectFrequency string いいえ ページモニタリング頻度:normalfrequentrare
globalContext object いいえ カスタムグローバルパラメータ。特殊キー:track_id
enableResourceHostIP boolean いいえ ターゲットドメインの IP を収集するかどうか。enableNativeUserResource = true のデフォルト収集にのみ影響
enableTrackNativeCrash boolean いいえ Android Java Crash および OC/C/C++ クラッシュ監視を有効にするかどうか
enableTrackNativeAppANR boolean いいえ Native ANR 監視を有効にするかどうか
enableTrackNativeFreeze boolean いいえ Native Freeze を収集するかどうか
nativeFreezeDurationMs number いいえ Native Freeze のしきい値。範囲 [100,)、単位はミリ秒
rumDiscardStrategy string いいえ 破棄戦略:discarddiscardOldest
rumCacheLimitCount number いいえ ローカルキャッシュの最大 RUM エントリ数制限。デフォルト 100000
enableTraceWebView boolean いいえ ネイティブ SDK を介した WebView データ収集を有効にするかどうか。デフォルト true、SDK 0.2.6 以上で対応
allowWebViewHost array いいえ データ追跡を許可する WebView host のリスト。null の場合はすべて収集

RUM ユーザーデータ追跡

var rum = uni.requireNativePlugin("GCUniPlugin-RUM");

Action

API - startAction

RUM Action を開始します。

RUM はこの Action 中に発生する可能性のある Resource、Error、LongTask イベントをバインドします。0.1s 以内に複数回呼び出さないでください。同一 View では同時に 1 つの Action のみが関連付けられ、前の Action が終了していない場合は新しい Action は破棄されます。addAction とは互いに影響しません。

rum.startAction({
    actionName: 'action name',
    actionType: 'action type'
});
パラメータ名 パラメータ型 必須 パラメータ説明
actionName string はい イベント名
actionType string はい イベントタイプ
property object いいえ イベントコンテキスト

API - addAction

Action イベントを追加します。このデータは Error、Resource、LongTask に関連付けることができず、破棄ロジックはありません。

rum.addAction({
    actionName: 'action name',
    actionType: 'action type'
});
パラメータ名 パラメータ型 必須 パラメータ説明
actionName string はい イベント名
actionType string はい イベントタイプ
property object いいえ イベントコンテキスト

View

自動収集

gcViewTracking の使用を推奨します。これにより、ページの onLoadonReadyonShowonHideonUnload および App のフォアグラウンド/バックグラウンドイベントを統一的にリッスンし、ネイティブ RUM View API を自動的に呼び出します。

プロジェクトの main.js でできるだけ早く 1 回呼び出してください。Vue 2 の場合はルート Vue インスタンスを作成する前に呼び出します。Vue 3 の場合は createSSRApp が返す app を渡す必要があります:

Vue 2
import App from './App';
import { gcViewTracking } from '@/uni_modules/GC-JSPlugin';
import Vue from 'vue';

gcViewTracking.startTracking();

const app = new Vue({
    ...App
});
app.$mount();
Vue 3
import App from './App';
import { gcViewTracking } from '@/uni_modules/GC-JSPlugin';
import { createSSRApp } from 'vue';

export function createApp() {
    const app = createSSRApp(App);
    gcViewTracking.startTracking(app);
    return { app };
}

収集ルール:

  • ページが初めて表示される際、loading_timeonLoad から onReady までの時間で計算され、単位はナノ秒です。
  • 収集開始が遅すぎる、または完全なページライフサイクルを受信できなかった場合、信頼性のある読み込み時間を計算できないため -1 を使用します。ページが再表示されたり、App がフォアグラウンドに戻った場合は 0 を使用します。
  • ページが非表示になったり、アンロードされたり、App がバックグラウンドに入ると、現在の View は停止します。同一ライフサイクル内での重複した onShowresume は自動的に重複排除されます。
  • ルーティングに失敗した場合は View は生成されません。同一ルートの複数のページインスタンスは、それぞれ状態を維持します。
互換収集方式

旧バージョンの mixin 方式は互換性のために残されています。新規プロジェクトでは gcViewTracking を優先して使用し、両方の自動収集方式を同時に有効にしないでください。重複した View が生成される可能性があります。

App.vue + 最初のページの組み合わせ設定は、SDK パッケージのサンプルプロジェクト Hbuilder_Example/App.vue および Hbuilder_Example/pages/index/index.vue を参照してください:

// 手順 1. GC-JSPlugin をプロジェクトの uni_modules に追加
// 手順 2. App.vue に Router 監視を追加
<script>
import { gcWatchRouter } from '@/uni_modules/GC-JSPlugin';
export default {
    mixins: [gcWatchRouter],
}
</script>
// 手順 3. 最初の page ページに pageMixin を追加
<script>
import { gcPageMixin } from '@/uni_modules/GC-JSPlugin';
export default {
    mixins: [gcPageMixin],
}
</script>

特定のページのみを収集する場合は、SDK パッケージのサンプルプロジェクト Hbuilder_Example/pages/rum/index.vue を参照してください:

<script>
import { gcPageViewMixinOnly } from '@/uni_modules/GC-JSPlugin';
export default {
    mixins: [gcPageViewMixinOnly],
}
</script>

手動収集

rum.onCreateView({
    viewName: 'Current Page Name',
    loadTime: 100000000
});

rum.startView({
    viewName: 'Current Page Name'
});
rum.stopView();

API - onCreateView

ページ読み込み時間の記録を作成します。

フィールド 必須 説明
viewName string はい ページ名
loadTime number はい ページ読み込み時間、単位はナノ秒

API - startView

ページに入ります。

フィールド 必須 説明
viewName string はい ページ名
property object いいえ イベントコンテキスト

API - stopView

ページを離れます。

フィールド 必須 説明
property object いいえ イベントコンテキスト

Error

自動収集

import { gcErrorTracking } from '@/uni_modules/GC-JSPlugin';

gcErrorTracking.startTracking();

手動収集

rum.addError({
    message: 'Error message',
    stack: 'Error stack'
});

API - addError

フィールド 必須 説明
message string はい エラーメッセージ
stack string はい スタック情報
state string いいえ App 実行状態:unknownstartuprun
type string いいえ エラータイプ、デフォルト uniapp_crash
property object いいえ イベントコンテキスト

Resource

自動収集

SDK 0.2.7 以上では gcResourceTracking の使用を推奨します。標準の uni.request にグローバルインターセプターをインストールし、Resource 識別子を自動生成し、Trace 設定に準拠したリクエストヘッダーを注入し、リクエストの成功または失敗によって生成される RUM Resource を収集します。

リクエストを開始する前に startTracking を 1 回呼び出し、その後は引き続き uni.request を直接使用してください:

import { gcResourceTracking } from '@/uni_modules/GC-JSPlugin';

gcResourceTracking.startTracking();
uni.request({
    url: requestUrl,
    method: method,
    header: header,
    timeout: 30000,
    success(res) {
        console.log('success:' + JSON.stringify(res));
    },
    fail(err) {
        console.log('fail:' + JSON.stringify(err));
    },
    complete() {
        console.log('complete');
    }
});

startTracking の設定:

フィールド 必須 デフォルト値 説明
enableIOS boolean いいえ true iOS 側で JS インターセプターを介して uni.request を収集するかどうか。Android は常に有効です。iOS で既に enableNativeUserResource が有効になっている場合は、ネイティブの URLSession 自動収集との重複を避けるために false に設定する必要があります
// iOS で既に rum.setConfig({ enableNativeUserResource: true }) によりネイティブ収集が有効になっている場合:
gcResourceTracking.startTracking({
    enableIOS: false
});

使用上の注意:

  • App Android と App iOS のみ対応。アプリケーション起動時、最初の uni.request 呼び出し前に実行する必要があります。
  • startTracking は 1 回のみ呼び出す必要があります。複数回呼び出してもインターセプターは再インストールされません。
  • Trace が設定されている場合、Trace 許可リストに一致するリクエストには Trace Header が注入されます。ビジネスコードで明示的に設定された同名のリクエストヘッダーが優先されます。
  • 既存の successfailcomplete コールバックは変更されません。
  • gcRequest.request は 0.2.7 以降、非推奨の互換 API としてのみ維持されます。グローバルコレクターを有効にした後は uni.request を置き換える必要はなく、両方の収集方法を並行して使用しないでください。

gcRequest.request の旧設定は、まだ移行していないプロジェクトの参考としてのみ提供されます:

互換フィールド 必須 説明
filterPlatform array いいえ enableNativeUserResource を有効にした後、filterPlatform: ["ios"] を設定して iOS 側の旧バージョンの手動収集を無効にできます

手動収集

startResourcestopResourceaddResource を手動で呼び出して実装します。詳細は GCRequest.js を参照してください。

API - startResource

フィールド 必須 説明
key string はい リクエストの一意識別子
property object いいえ イベントコンテキスト

API - stopResource

フィールド 必須 説明
key string はい リクエストの一意識別子
property object いいえ イベントコンテキスト

API - addResource

パラメータ名 パラメータ型 必須 パラメータ説明
key string はい リクエストの一意識別子
content content object はい リクエスト関連データ

content object

プロトタイプ パラメータ型 パラメータ説明
url string リクエスト URL
httpMethod string HTTP メソッド
requestHeader object リクエストヘッダー
responseHeader object レスポンスヘッダー
responseBody string レスポンス結果
resourceStatus string リクエスト結果のステータスコード

フィードバック

このページは役に立ちましたか?