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 | いいえ | エラー補足モニタリングタイプ: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¶
API - startAction¶
RUM Action を開始します。
RUM はこの Action 中に発生する可能性のある Resource、Error、LongTask イベントをバインドします。0.1s 以内に複数回呼び出さないでください。同一 View では同時に 1 つの Action のみが関連付けられ、前の Action が終了していない場合は新しい Action は破棄されます。addAction とは互いに影響しません。
| パラメータ名 | パラメータ型 | 必須 | パラメータ説明 |
|---|---|---|---|
| actionName | string | はい | イベント名 |
| actionType | string | はい | イベントタイプ |
| property | object | いいえ | イベントコンテキスト |
API - addAction¶
Action イベントを追加します。このデータは Error、Resource、LongTask に関連付けることができず、破棄ロジックはありません。
| パラメータ名 | パラメータ型 | 必須 | パラメータ説明 |
|---|---|---|---|
| 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 を優先して使用し、両方の自動収集方式を同時に有効にしないでください。重複した 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¶
自動収集¶
手動収集¶
API - addError¶
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| message | string | はい | エラーメッセージ |
| stack | string | はい | スタック情報 |
| state | string | いいえ | App 実行状態:unknown、startup、run |
| type | string | いいえ | エラータイプ、デフォルト uniapp_crash |
| property | object | いいえ | イベントコンテキスト |
Resource¶
自動収集¶
SDK 0.2.7 以上では gcResourceTracking の使用を推奨します。標準の uni.request にグローバルインターセプターをインストールし、Resource 識別子を自動生成し、Trace 設定に準拠したリクエストヘッダーを注入し、リクエストの成功または失敗によって生成される RUM Resource を収集します。
リクエストを開始する前に startTracking を 1 回呼び出し、その後は引き続き uni.request を直接使用してください:
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 が注入されます。ビジネスコードで明示的に設定された同名のリクエストヘッダーが優先されます。
- 既存の
success、fail、completeコールバックは変更されません。 gcRequest.requestは 0.2.7 以降、非推奨の互換 API としてのみ維持されます。グローバルコレクターを有効にした後はuni.requestを置き換える必要はなく、両方の収集方法を並行して使用しないでください。
gcRequest.request の旧設定は、まだ移行していないプロジェクトの参考としてのみ提供されます:
| 互換フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| filterPlatform | array | いいえ | enableNativeUserResource を有効にした後、filterPlatform: ["ios"] を設定して iOS 側の旧バージョンの手動収集を無効にできます |
手動収集¶
startResource、stopResource、addResource を手動で呼び出して実装します。詳細は 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 | リクエスト結果のステータスコード |