ミニアプリアプリケーションの統合¶
SDK ファイルを導入することで、ミニアプリのパフォーマンス指標、エラーログ、リソースリクエストデータを収集し、Guance プラットフォームにレポートして、ミニアプリのパフォーマンスを可視化分析します。
前提条件(DataKit 経由の場合)¶
- DataKit をインストールしていること。
- RUM コレクター を設定していること。
- DataKit がパブリックネットワークからアクセス可能で、IP 地理情報データベースがインストール されていること。
統合を開始する¶
- RUM > アプリケーションを作成 > ミニアプリ に進みます。
- アプリケーション名を入力します。
- アプリケーション ID を入力します。
-
アプリケーションの統合方法を選択します。
-
パブリック DataWay:DataKit コレクターをインストールせずに RUM データを直接受信します。
- ローカル環境へのデプロイ:前提条件を満たした上で RUM データを受信します。
統合方法¶
- DataKit がインストールされ、パブリックネットワークからアクセス可能で、IP 地理情報データベースがインストール されていることを確認します。
- コンソールで
applicationId、env、versionなどのパラメーターを取得し、アプリケーションの統合 を開始します。 - SDK を統合する際、
datakitOriginに DataKit のドメイン名または IP を設定します。
- コンソールで
applicationId、clientToken、siteなどのパラメーターを取得し、アプリケーションの統合 を開始します。 - SDK を統合する際、
datakitOriginを設定する必要はありません。データはデフォルトでパブリック DataWay に送信されます。
使用方法¶
ミニアプリの app.js ファイルに以下のようにコードを追加します。
注意:App() の初期化より前に追加する必要があります。
NPM パッケージの導入方法については、WeChat 公式の npm 導入方法 を参照してください。
const { datafluxRum } = require('@cloudcare/rum-miniapp')
// Rum の初期化
datafluxRum.init({
datakitOrigin: '<DATAKIT ORIGIN>',// 必須、Datakit のドメインアドレス。WeChat ミニアプリ管理バックエンドでドメインホワイトリストに追加する必要があります。
site: "http://172.16.212.186:9529", // パブリック DataWay に対応するサイトのドメイン
clientToken: "a993f53a8ea04bc6b9350e5e670a3a3b", // パブリック DataWay へのレポートに必要なクライアントトークン。Guance コンソールでアプリケーションを作成する際に生成されます。
applicationId: '<アプリケーション ID>', // 必須、dataflux プラットフォームで生成されたアプリケーション ID
env: 'testing', // 任意、ミニアプリの環境
version: '1.0.0', // 任意、ミニアプリのバージョン
service: 'miniapp', // 現在のアプリケーションのサービス名
trackInteractions: true,
traceType: 'ddtrace', // 任意、デフォルトは ddtrace。現在 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent の 6 種類をサポート。
allowedTracingOrigins: ['https://api.example.com',/https:\/\/.*\.my-api-domain\.com/], // 任意、トレースコレクターに必要なヘッダーを注入するリクエストのリスト。リクエストの origin または正規表現を指定可能。
allowTraceHeaderWithoutSession: true, // セッションがサンプリングされていなくても Trace Header を注入します。RUM データはレポートされません。
})
ファイルをダウンロード してローカルに導入します。
const { datafluxRum } = require('./lib/dataflux-rum-miniapp.js')
// Rum の初期化
datafluxRum.init({
datakitOrigin: '<DATAKIT ORIGIN>',// 必須、Datakit のドメインアドレス。WeChat ミニアプリ管理バックエンドでドメインホワイトリストに追加する必要があります。
site: "http://172.16.212.186:9529", // パブリック DataWay に対応するサイトのドメイン
clientToken: "a993f53a8ea04bc6b9350e5e670a3a3b", // パブリック DataWay へのレポートに必要なクライアントトークン。Guance コンソールでアプリケーションを作成する際に生成されます。
applicationId: '<アプリケーション ID>', // 必須、dataflux プラットフォームで生成されたアプリケーション ID
env: 'testing', // 任意、ミニアプリの環境
version: '1.0.0', // 任意、ミニアプリのバージョン
service: 'miniapp', // 現在のアプリケーションのサービス名
trackInteractions: true,
traceType: 'ddtrace', // 任意、デフォルトは ddtrace。現在 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent の 6 種類をサポート。
allowedTracingOrigins: ['https://api.example.com',/https:\/\/.*\.my-api-domain\.com/], // 任意、トレースコレクターに必要なヘッダーを注入するリクエストのリスト。リクエストの origin または正規表現を指定可能。
allowTraceHeaderWithoutSession: true, // セッションがサンプリングされていなくても Trace Header を注入します。RUM データはレポートされません。
})
設定¶
初期化パラメーター¶
| パラメーター | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
applicationId |
String | はい | Guance で作成されたアプリケーション ID。 | |
datakitOrigin |
String | はい | DataKit データレポートの Origin。 ❗️ ミニアプリ管理バックエンドで request のホワイトリストに追加する必要があります。 |
|
site |
String | はい(パブリック DataWay レポート方式の場合は必須) |
パブリック DataWay に対応するサイトのドメイン。形式:プロトコル(//を含む)、ドメイン名(またはIPアドレス)[およびポート番号]。例:https://www.dataway.com、http://100.20.34.3:8088 |
|
clientToken |
String | はい(パブリック DataWay の場合は必須) |
パブリック DataWay へのレポートに必要なクライアントトークン。Guance コンソールでアプリケーションを作成する際に生成されます。 | |
env |
String | いいえ | ミニアプリの現在の環境。例:prod(本番)、gray(カナリア)、pre(プレリリース)、common(日常)、local(ローカル)。 |
|
version |
String | いいえ | ミニアプリのバージョン番号。 | |
service |
String | いいえ | 現在のアプリケーションのサービス名。デフォルトは miniapp。カスタム設定可能。 |
|
sampleRate |
Number | いいえ | 100 |
メトリクスデータの収集率。100 は全収集、0 は収集しない。 |
sessionSampleRate |
Number | いいえ | 100 |
sampleRate の互換エイリアス。両方が設定されている場合は sampleRate が優先されます。 |
remoteConfiguration |
Boolean | いいえ | false |
リモート設定 を有効にするかどうか。SDK はまずローカル設定で起動し、その後非同期でサポートされている設定項目を取得して適用します。 |
remoteConfigration |
Boolean | いいえ | false |
remoteConfiguration の旧スペル互換項目。新規プロジェクトでの使用は推奨しません。 |
remoteConfigurationFetchTimeout |
Number | いいえ | 3000 |
リモート設定リクエストのタイムアウト時間(ミリ秒)。リクエストが失敗またはタイムアウトした場合は、ローカル設定が引き続き使用されます。 |
trackInteractions |
Boolean | いいえ | false |
ユーザーインタラクションの収集を有効にするかどうか。 |
trackResourceQueryString |
Boolean | いいえ | false |
リクエスト URL のクエリ文字列を収集するかどうか。クエリ文字列にはトークンやユーザー ID が含まれる可能性があるため、セキュリティが確認された場合のみ有効にしてください。 |
trackRequestErrorResponseBody |
Boolean | いいえ | false |
失敗したリクエストのレスポンスボディをエラースタックに書き込むかどうか。レスポンスボディには機密データが含まれる可能性があります。 |
requestErrorResponseLengthLimit |
Number | いいえ | 32768 |
失敗したリクエストのレスポンスボディをエラースタックに書き込む際の最大文字数。trackRequestErrorResponseBody が有効な場合のみ適用されます。 |
trackLaunchOptions |
Boolean | いいえ | false |
ミニアプリ起動パラメーターの query と referrerInfo を収集するかどうか。 |
beforeSend |
Function | いいえ | データが送信キューに入る前のコールバック。イベントを変更可能。false を返すと View 以外のイベントを破棄できます。コールバック内の例外はビジネスや SDK に影響しません。 |
|
userId / user_id |
String | いいえ | 初期化時にログインユーザー ID を設定します。初期化後は setUser({ id }) でも設定可能。 |
|
traceType |
Enum | いいえ | ddtrace |
分散型トレーシングのツールタイプ。デフォルトは ddtrace。現在 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent の 6 種類をサポート。❗️ 1. opentelemetry は zipkin_single_header、w3c_traceparent、zipkin、jaeger の 4 種類をサポート。2. 対応する traceType を設定するには、該当の API サービスで異なる Access-Control-Allow-Headers を設定する必要があります。APM と RUM の関連付け方法 を参照してください。 |
traceId128Bit |
Boolean | いいえ | false |
128 バイトで traceID を生成するかどうか。traceType に対応し、zipkin、jaeger タイプをサポート。 |
allowedTracingOrigins |
Array | いいえ | [] |
【新規】ddtrace コレクターに必要なヘッダーを注入するリクエストのリスト。リクエストの origin または正規表現を指定可能。origin の形式:プロトコル(//を含む)、ドメイン名(またはIPアドレス)[およびポート番号]。例:["https://api.example.com", /https:\\/\\/.*\\.my-api-domain\\.com/] |
allowTraceHeaderWithoutSession |
Boolean | いいえ | false |
現在のセッションがサンプリングされていない場合でも、allowedTracingOrigins に一致するリクエストに Trace Header を注入するかどうか。有効にしても、そのセッションの RUM データが強制的にサンプリングまたはレポートされることはありません。 |
isIntakeUrl |
Function | いいえ | function(url) {return false} |
リクエストリソースの URL に基づいて、そのリソースデータを収集するかどうかを判断するカスタムメソッド。デフォルトではすべて収集します。戻り値:false は収集する、true は収集しない。❗️ 1. 戻り値は Boolean 型である必要があります。それ以外の場合は無効なパラメーターと見なされます。 2. バージョン 2.1.10 以降が必要です。 |
サンプリングされていないセッションの Trace Header¶
allowTraceHeaderWithoutSession のデフォルトは false です。true に設定すると、現在のセッションが RUM サンプリングにヒットしなくても、SDK は allowedTracingOrigins に一致するリクエストに Trace Header を注入します。この設定により、サンプリングが強制されたり、新しいセッションが作成されたりすることはなく、サンプリングされていないセッションの View、Action、Resource、Error などの RUM データがレポートされることもありません。
注意事項¶
datakitOriginに対応する DataKit のドメイン名は、ミニアプリ管理バックエンドで request のホワイトリストに追加する必要があります。- 現在、WeChat ミニアプリのリクエストリソース API
wx.request、wx.downloadFileが返すprofileフィールドは iOS システムではサポートされていないため、収集されるリソース情報のうち timing 関連のデータが不完全になります。現時点で解決策はありません:request、downloadFile、API サポート状況。 trackInteractionsでユーザーインタラクション収集を有効にすると、WeChat ミニアプリの制限により、コントロールの内容や構造データを収集できません。そのため、ミニアプリ SDK では宣言的プログラミングを採用しています。wxml ファイルにdata-name属性を設定することで、インタラクション要素に名前を付けることができ、後続の統計で操作記録を特定しやすくなります。例: