概要

enablePrivacyForActionName 初期化パラメーターを有効にすると、プライバシー保護のためにアクション名がマスクされます。ミニファイ済みビルドでは、バンドラーがRUMによるアクション名の生成に使用されるDOM要素のテキストや属性を難読化するため、アクション名が読み取れなくなることがあります。

アクション名の難読化解除ビルドプラグインは、ビルド時にソースコードをインストゥルメント化して、難読化された値を元のテキストにマッピングするプライバシー辞書を生成することで、両方の問題に対処します。RUM SDKはこの辞書を使用して、読み取り可能なアクション名を解決します。

前提条件

  • RUM SDKはtrackUserInteractions: trueおよびenablePrivacyForActionName: trueで初期化されています。すべてのアクション名をマスクする を参照してください。
  • Datadogビルドプラグインがインストールされ、バンドラーに登録されています。インストール手順については、ビルドプラグイン を参照してください。

構成

ビルドプラグインオプションでrum.privacyオブジェクトを設定してください。

パラメーター型必須デフォルト説明
rum.privacy.includeRegExpまたはStringの配列いいえJS/TSファイル(.js、.ts、.jsx、.tsx、.mjs、.cjs、およびそのバリエーション)アクション名の難読化解除のために処理するファイルパターン。
rum.privacy.excludeRegExpまたはStringの配列いいえnode_modules、 .preval. ファイル除外するファイルパターン。

例

デフォルト設定 (すべてのJS/TSファイルを処理し、node_modulesを除外)の場合:

const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {},
      },
    }),
  ],
};

カスタムのインクルードおよび除外パターンを使用する場合:

const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {
          include: [/\.jsx?$/, /\.tsx?$/],
          exclude: [/\/node_modules\//, /\/test\//],
        },
      },
    }),
  ],
};
これらの例ではwebpackを使用しています。設定オブジェクトは、サポートされているすべてのバンドラーで同一です。インストール手順については、Build Pluginsを参照してください。

参考資料