コンテンツにスキップ

ミニアプリアプリケーションの統合


SDK ファイルを導入することで、ミニアプリのパフォーマンス指標、エラーログ、リソースリクエストデータを収集し、Guance プラットフォームにレポートして、ミニアプリのパフォーマンスを可視化分析します。

前提条件(DataKit 経由の場合)

統合を開始する

  1. RUM > アプリケーションを作成 > ミニアプリ に進みます。
  2. アプリケーション名を入力します。
  3. アプリケーション ID を入力します。
  4. アプリケーションの統合方法を選択します。

  5. パブリック DataWay:DataKit コレクターをインストールせずに RUM データを直接受信します。

  6. ローカル環境へのデプロイ:前提条件を満たした上で RUM データを受信します。

統合方法

  1. DataKit がインストールされ、パブリックネットワークからアクセス可能で、IP 地理情報データベースがインストール されていることを確認します。
  2. コンソールで applicationIdenvversion などのパラメーターを取得し、アプリケーションの統合 を開始します。
  3. SDK を統合する際、datakitOrigin に DataKit のドメイン名または IP を設定します。

  1. コンソールで applicationIdclientTokensite などのパラメーターを取得し、アプリケーションの統合 を開始します。
  2. 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.comhttp://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 ミニアプリ起動パラメーターの queryreferrerInfo を収集するかどうか。
beforeSend Function いいえ データが送信キューに入る前のコールバック。イベントを変更可能。false を返すと View 以外のイベントを破棄できます。コールバック内の例外はビジネスや SDK に影響しません。
userId / user_id String いいえ 初期化時にログインユーザー ID を設定します。初期化後は setUser({ id }) でも設定可能。
traceType Enum いいえ ddtrace 分散型トレーシングのツールタイプ。デフォルトは ddtrace。現在 ddtracezipkinskywalking_v3jaegerzipkin_single_headerw3c_traceparent の 6 種類をサポート。
❗️
1. opentelemetryzipkin_single_headerw3c_traceparentzipkinjaeger の 4 種類をサポート。
2. 対応する traceType を設定するには、該当の API サービスで異なる Access-Control-Allow-Headers を設定する必要があります。APM と RUM の関連付け方法 を参照してください。
traceId128Bit Boolean いいえ false 128 バイトで traceID を生成するかどうか。traceType に対応し、zipkinjaeger タイプをサポート。
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 データがレポートされることもありません。

注意事項

  1. datakitOrigin に対応する DataKit のドメイン名は、ミニアプリ管理バックエンドで request のホワイトリストに追加する必要があります。
  2. 現在、WeChat ミニアプリのリクエストリソース API wx.requestwx.downloadFile が返す profile フィールドは iOS システムではサポートされていないため、収集されるリソース情報のうち timing 関連のデータが不完全になります。現時点で解決策はありません:requestdownloadFileAPI サポート状況
  3. trackInteractions でユーザーインタラクション収集を有効にすると、WeChat ミニアプリの制限により、コントロールの内容や構造データを収集できません。そのため、ミニアプリ SDK では宣言的プログラミングを採用しています。wxml ファイルに data-name 属性を設定することで、インタラクション要素に名前を付けることができ、後続の統計で操作記録を特定しやすくなります。例:
<button bindtap="bindSetData" data-name="setData">
  setData
</button>

フィードバック

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