このトピックでは、Application Real-Time Monitoring Service (ARMS) のブラウザ監視機能を使用して、DingTalk、Alipay、WeChatミニプログラムを除く、標準準拠のミニプログラムを監視する方法について説明します。また、関連する一般的な構成、APIメソッド、高度なシナリオについても説明します。
基本的な使用方法
ミニプログラムを監視するには、npmパッケージの導入と初期化、ログの報告、セキュリティドメイン名の構成という、以下の操作を実行する必要があります。
npmパッケージを導入して初期化します。
ミニプログラムプロジェクトで、
@arms/js-sdk
という名前のnpmパッケージを導入して、ログの報告を容易にします。npm install @arms/js-sdk
/utilsディレクトリのmonitor.jsファイルに次の情報を追加して、パッケージを初期化します。
説明JavaScript (JS) ファイルの名前と保存パスを指定できます。
import MiniProgramLogger from '@arms/js-sdk/miniapp'; const Monitor = MiniProgramLogger.init({ pid: 'xxx', uid: 'userxxx', // ユーザーの ID。Unique Visitor (UV) データの収集に使用されます。 region: 'cn', // アプリケーションがデプロイされているリージョン。アプリケーションが中国にデプロイされている場合は cn に設定し、中国以外にデプロイされている場合は sg に設定します。デフォルト値は cn です。 // ミニプログラムのブラウザ監視を実行するには、リモートプロシージャコール (RPC) メソッドを指定する必要があります。実装メソッドを記述します。次の例では、DingTalk E-App のメソッドを使用しています。 sendRequest: (url, resData) => { // 次のスニペットは、ビジネス側で設定する必要があります。GET または POST メソッドがサポートされています。 // demo in dingding var method = 'GET'; var data; if (resData) { method = 'POST'; data = JSON.stringify(resData); } dd.httpRequest({ url: url, method: method, data: data, fail: function (error) { //... } }); }, // 現在のページのパスを取得するメソッドを手動で入力します。実装メソッドを記述します。次の例では、DingTalk E-App のメソッドを使用しています。 getCurrentPage: () => { // 次のスニペットは、ビジネス側で設定する必要があります。 if (typeof getCurrentPages ! == 'undefined' && typeof getCurrentPages === 'function') { var pages = (getCurrentPages() || []); var pageLength = pages.length; var currPage = pages[pageLength - 1]; return (currPage && currPage.route) || null; } } }); export default Monitor;
説明パラメータ構成の詳細については、「共通の SDK パラメータ」をご参照ください。
ログを報告します。
app.js で、次のいずれかの方法を使用してログを報告します。
Monitor.hookApp(options) メソッドを使用して、エラーログを自動的にキャプチャします。 options パラメータは、アプリ固有のオブジェクトです。
import Monitor from '/utils/monitor'; App(Monitor.hookApp({ onError(err) { console.log('Trigger onError:', err); }, onLaunch() { console.log('Trigger onLaunch'); }, onShow(options) { }, onHide() { } }));
Monitor.error(err) メソッドを使用して、エラーログを手動で報告します。
import Monitor from '/utils/monitor'; App({ onError(err) { Monitor.error(err); console.log('Trigger onError:', err); }, onLaunch() { console.log('Trigger onLaunch'); }, onShow(options) { }, onHide() { } });
page.js で、次のいずれかの方法を使用してログを報告します。
Monitor.hookPage(options) メソッドを使用して、ページビュー (PV) とヘルスデータを自動的に報告します。
説明このメソッドは、APIリクエストの自動レポートをサポートしていません。
import Monitor from '/utils/monitor'; Page(Monitor.hookPage({ data: {}, onLoad(query) { }, onReady() { // ページが読み込まれました。 }, onShow() { }, onLoad(query) { }, onHide() { }, onUnload() { }, onTitleClick() { /** * インストラメンテーションデータを収集し、カスタムの方法でインストラメンテーションを実行します。 * @desc */ Monitor.sum('titleClick'); } }));
セキュリティドメイン名を設定します。
region が
cn
に設定されている場合は、https://arms-retcode.aliyuncs.com
を有効なドメイン名に追加します。region が
sg
に設定されている場合は、https://arms-retcode-sg.aliyuncs.com
を有効なドメイン名に追加します。
API メソッド
メソッド | パラメータ | 備考 |
hookApp | {} | ソースアプリのパラメータを入力します。このメソッドは、アプリのライフサイクル中にインストラメンテーションを自動的に実行するために使用されます。 |
hookPage | {} | ソースページのパラメータを入力します。このメソッドは、ページのライフサイクル中にインストラメンテーションを自動的に実行するために使用されます。 |
setCommonInfo | {[key: string]: string;} | 段階的リリースなどのシナリオの基本的なログフィールドを設定します。 |
setConfig | {[key: string]: string;} | config フィールドを設定します。詳細については、「SDK リファレンス」をご参照ください。 |
pageShow | {} | PV データを報告します。 |
pageHide | {} | ヘルスデータを報告します。 |
error | String/Object | エラーログを報告します。 |
api | 詳細については、「SDK メソッド」をご参照ください。 | API リクエストログを報告します。 |
sum/avg | String | カスタムの合計および平均ログを報告します。 |
ミニプログラム監視プロジェクトで hookApp または hookPage メソッドを呼び出してインストラメンテーションを実行する場合、プロジェクトは標準ミニプログラムの app および page の規則に準拠している必要があります。プロジェクトは、アプリの onError と、ページの onShow、 onHide、 onUnload をサポートしている必要があります。メソッドの例については、「基本的な使用方法」をご参照ください。
ほとんどのログ報告メソッドは、ブラウザ監視 SDK と同じ目的を果たします。次のセクションでは、他のメソッドの呼び出し方法について説明します。
現在のページの PV データを送信するには、ページの onShow で pageShow() を呼び出します。
説明pageShow() を hookPage() と一緒に呼び出さないでください。そうしないと、PV ログが繰り返し報告されます。
import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } })
ヘルスレベルやページ滞在時間などのヘルスデータを送信するには、ページの onHide および onUnload で pageHide() を呼び出します。
説明pageHide() を hookPage() と一緒に呼び出さないでください。そうしないと、ログが繰り返し報告されます。
import Monitor from '/util/monitor'; Page({ onHide: function() { Monitor.pageHide(); }, onUnload: function() { Monitor.pageHide(); } ... })
高度なシナリオ
基本的な使用方法では要件を満たせない場合は、次の高度なシナリオを参照してください。
UV データを収集するために uid を設定します。
監視 SDK が初期化される前にユーザー情報を取得できる場合は、 uid を設定できます。
監視 SDK が初期化される前にユーザー情報を取得できない場合は、アプリケーションの onShow がトリガーされる前にユーザー情報を取得し、 setCommonInfo({uid: 'xxx'}) を呼び出して uid を設定できます。
ミニプログラムの共通情報を構成します。
setCommonInfo を呼び出して、ミニプログラムの共通情報を構成します。ARMS ブラウザ監視は、次のパラメータで統計分析を実行します。
sr: 画面のサイズ
vp: ブラウザウィンドウの表示セクション
dpr: 画面のピクセル比
ul: ドキュメントの言語
dr: ドキュメントの参照
ct: ネットワーク接続タイプ (Wi-Fi、3G など)
警告一度に過剰なパラメータを構成するために setCommonInfo を呼び出さないでください。そうしないと、リクエストの長さが制約を超えてリクエストエラーが発生する可能性があります。
共通の SDK パラメータ
ARMS ブラウザ監視は、一連の SDK パラメータを提供します。追加の要件を満たすようにパラメータを設定できます。次の表では、このトピックで説明されているシナリオに適した共通パラメータについて説明します。
|
|
|
|
|
pid | String | プロジェクトの一意の ID。ARMS がサイトを作成するときに自動的に生成されます。 | はい | なし |
uid | String | ユーザーの ID。値はユーザーの識別子であり、ユーザーの検索に使用できます。カスタム値を指定できます。このパラメータを指定しない場合、SDK は 6 か月ごとに自動的に生成および更新されます。 | いいえ | SDK によって自動的に生成されます |
tag | String | 入力タグ。各ログにはタグが付いています。 | いいえ | なし |
release | String | アプリケーションのバージョン。異なるバージョンのレポート情報を表示するために、このパラメータを設定することをお勧めします。 | いいえ |
|
environment | String | 環境フィールド。有効な値:prod、gray、pre、daily、local。
| いいえ |
|
sample | Integer | ログサンプリング構成。値は 1 ~ 100 の整数です。パフォーマンスログと成功 API ログは、 | いいえ |
|
behavior | Boolean | トラブルシューティングを容易にするために、エラーを報告するユーザーの動作を記録するかどうかを指定します。 | いいえ |
|
ARMS ブラウザ監視は、他の SDK パラメータも提供します。詳細については、「SDK リファレンス」をご参照ください。