コンテンツにスキップ

RUM 設定

RUM を取得する

標準 uni-app:

import { rum } from '@/uni_modules/GC-UniPlugin';

uni ミニプログラム:

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

uni ミニプログラムはホスト App が RUM の初期化を完了するため、rum.setConfig() を呼び出す必要はありません。本ページの自動コレクターと手動収集 API は、ホストの初期化完了後に使用できます。

RUM 初期化設定

rum.setConfig({
    androidAppId: 'YOUR_ANDROID_APP_ID',
    iOSAppId: 'YOUR_IOS_APP_ID',
    harmonyAppId: 'YOUR_HARMONY_APP_ID',
    errorMonitorType: 'all',
    deviceMonitorType: ['cpu', 'memory']
});
パラメーター名 パラメーター型 必須 説明
androidAppId string Android リリース時は必須 Android プラットフォームの appId
iOSAppId string iOS リリース時は必須 iOS プラットフォームの appId
harmonyAppId string HarmonyOS リリース時は必須 HarmonyOS プラットフォームの 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 いいえ エラー補足モニタリングタイプ:all、battery、memory、cpu
deviceMonitorType string/array いいえ ページモニタリングタイプ:all、battery(Android のみ)、memory、cpu、fps
detectFrequency string いいえ ページモニタリング頻度:normal、frequent、rare
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 いいえ 破棄ポリシー:discard、discardOldest
rumCacheLimitCount number いいえ ローカルキャッシュの最大 RUM エントリ数制限、デフォルト 100000
enableTraceWebView boolean いいえ ネイティブ SDK を介した WebView データ収集を有効にするかどうか、デフォルト true、SDK 0.2.6 以降でサポート
allowWebViewHost array いいえ データ追跡を許可する WebView host のリスト、null の場合はすべて収集

RUM ユーザーデータ追跡

Action

HarmonyOS でクリック、タップ、長押し、タブ切り替えの Action を自動収集する場合は、JS Action コレクターを明示的に起動する必要があります:

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

gcActionTracking.startTracking();

Android、iOS の Native Action 自動収集は enableNativeUserAction で制御します。

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 の使用を推奨します。これは、ページの onLoad、onReady、onShow、onHide、onUnload および 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_time は onLoad から onReady までで計算され、単位はナノ秒です。
  • コレクターの起動が遅すぎる、または完全なページライフサイクルを受信できなかった場合、信頼性をもって計算できないロード時間は -1 になります。ページが再表示されたとき、または App がフォアグラウンドに戻ったときは 0 になります。
  • ページが非表示、アンロード、または App がバックグラウンドに入ると、現在の View は停止します。同じライフサイクル内での重複した onShow、resume は自動的に重複排除されます。
  • ルーティングに失敗した場合、View は生成されません。同じルートの複数のページインスタンスは、それぞれ個別に状態を管理します。
互換収集方式

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

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

// step 1. GC-JSPlugin をプロジェクトの uni_modules に追加します
// step 2. App.vue に Router 監視を追加します
<script>
import { gcWatchRouter } from '@/uni_modules/GC-JSPlugin';
export default {
    mixins: [gcWatchRouter],
}
</script>
// step 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 の実行状態:unknown、startup、run
type string いいえ エラータイプ、デフォルト uniapp_crash
property object いいえ イベントコンテキスト

Resource

自動収集

0.3.0 以降は gcResourceTracking の使用を推奨します。これは、Android、iOS、HarmonyOS の標準の uni.request をインターセプトし、リクエストの成功または失敗によって生成された RUM Resource を自動的に収集します。Trace がすでに初期化されている場合は、設定されたリンクタイプに基づいて Trace Header を生成し、リクエストヘッダーに追加します。enableLinkRUMData を有効にすると、RUM Resource と Trace を関連付けることができます。ビジネスコードで既に設定されている同名のリクエストヘッダーは上書きされません。

リクエストを発行する前に 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、HarmonyOS はこのパラメーターの影響を受けません。iOS で enableNativeUserResource がすでに有効になっている場合は false に設定し、ネイティブ URLSession の自動収集との重複を避けてください。
// iOS で rum.setConfig({ enableNativeUserResource: true }) によりネイティブ収集がすでに有効になっている場合:
gcResourceTracking.startTracking({
    enableIOS: false
});

使用上の注意:

  • App Android、App iOS、App HarmonyOS をサポートします。アプリケーションの起動段階で、最初の uni.request 呼び出しの前に実行する必要があります。
  • startTracking は 1 回だけ呼び出す必要があります。繰り返し呼び出してもインターセプターが重複してインストールされることはありません。
  • Trace がすでに初期化されている場合、リクエストには自動的に Trace Header が追加されます。ビジネスコードで明示的に設定された同名のリクエストヘッダーが優先されます。
  • 既存の success、fail、complete コールバックは変更されません。
  • gcRequest.request は 0.2.7 以降、非推奨の互換 API としてのみ保持されます。グローバルコレクターを有効にした後は uni.request を置き換える必要はなく、2 つの収集方式を並行して使用しないでください。

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

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

手動収集

startResource、stopResource、addResource を手動で呼び出して実装します。GCResourceTracking.js を参照してください。

API - startResource

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

API - stopResource

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

API - addResource

パラメーター名 パラメーター型 必須 パラメーター説明
key string はい リクエストの一意識別子
content content object はい リクエスト関連データ
property object いいえ イベントコンテキスト

content object

プロトタイプ パラメーター型 パラメーター説明
url string リクエスト URL
httpMethod string HTTP メソッド
requestHeader object リクエストヘッダー
responseHeader object レスポンスヘッダー
responseBody string レスポンス結果
resourceStatus number リクエスト結果ステータスコード
errorMessage string リクエスト失敗メッセージ
errorStack string リクエスト失敗スタック
fetchStartTime number リクエスト開始時間、単位はナノ秒
requestStartTime number リクエスト送信開始時間、単位はナノ秒
responseStartTime number レスポンス受信開始時間、単位はナノ秒
responseEndTime number レスポンス受信完了時間、単位はナノ秒
tcpStartTime number TCP 接続開始時間、単位はナノ秒
tcpEndTime number TCP 接続終了時間、単位はナノ秒
dnsStartTime number DNS 解決開始時間、単位はナノ秒
dnsEndTime number DNS 解決終了時間、単位はナノ秒
sslStartTime number SSL 接続開始時間、単位はナノ秒
sslEndTime number SSL 接続終了時間、単位はナノ秒

フィードバック

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