Datadog Browser RUM で予期しない動作が発生した場合に問題は、このガイドを使うと迅速に解決することができます。問題が解決しない場合は、Datadog サポートにお問い合わせください。各リリースには改善と修正が含まれているため、RUM Browser SDK は定期的に最新バージョンに更新してください。

データがない

RUM データが表示されない場合、または一部のユーザーのデータが欠落している場合

一般的な原因推奨される修正
広告ブロッカーが、RUM ブラウザ SDK のダウンロードや Datadog へのデータ送信を妨害している。一部の広告ブロッカーの制限は、パフォーマンスおよびマーケティング追跡ツールにまで及びます。ドキュメント npm を使用して RUM ブラウザ SDK をインストールする収集したデータをプロキシ経由で転送するを参照してください。
ネットワークルール、VPN、またはアンチウィルスソフトウェアが、RUM ブラウザ SDK のダウンロードや Datadog へのデータ送信を妨害している。RUM ブラウザ SDK のダウンロードまたはデータの送信に必要なエンドポイントへのアクセスを許可します。エンドポイントのリストは、コンテンツセキュリティポリシーのドキュメントにあります。
RUM ブラウザ SDK の前に初期化されたスクリプト、パッケージ、クライアントは、ログ、リソース、ユーザーアクションの欠落につながる可能性があります。たとえば、RUM ブラウザ SDK の前に ApolloClient を初期化すると、graphql リクエストが RUM エクスプローラーに XHR リソースとして記録されない場合があります。RUM ブラウザ SDK が初期化される場所を確認し、アプリケーションコードの実行の早い段階にこのステップを移動することを検討してください。

コンテンツセキュリティポリシーのガイドラインを読み、ウェブサイトが RUM ブラウザ SDK CDN とインテークエンドポイントへのアクセスを許可していることを確認します。

RUM ブラウザ SDK を初期化します

ブラウザコンソールで window.DD_RUM.getInternalContext() を実行して RUM ブラウザ SDK が初期化されているかどうかを確認し、application_idsession_id、およびビューオブジェクトが返されることを確認します。

内部コンテキストの取得コマンドの成功

RUM ブラウザ SDK がインストールされていない場合、または SDK が正常に初期化されていない場合は、次のような ReferenceError: DD_RUM is not defined エラーが表示される場合があります。

内部コンテキストの取得コマンドのエラー

RUM ブラウザ SDK のロードに関連するエラーに気付いた場合は、ブラウザー開発ツールのコンソールまたはネットワークタブを確認することもできます。

: 正確な結果を確実に得るために、sessionSampleRate を 100 に設定してください。詳しくは、ブラウザ RUM および ブラウザ RUM & セッションリプレイのサンプリングのためのセットアップの構成を参照してください。

Datadog インテークへのデータ

RUM ブラウザ SDK は、データのバッチを Datadog インテークに定期的に送信します。データが送信中の場合は、ブラウザ開発ツールの Network セクションに、/v1/input (URL の起点部分は RUM のコンフィギュレーションによって異なる場合があります) を対象とするネットワークリクエストが表示されます。

Datadog インテークに対する RUM リクエスト

RUM クッキー

RUM ブラウザ SDK は、クッキーに依存してセッション情報を保存し、さまざまなページでユーザーセッションを追跡します。クッキーはファーストパーティであり (ドメインに設定されています)、クロスサイト追跡には使用されません。RUM ブラウザ SDK によって設定されるクッキーは次のとおりです。

クッキー名詳細
_dd_s複数のページにわたる一意のユーザーセッションから生成されたすべてのイベントをグループ化するために使用されるクッキー。これには、現在のセッション ID、サンプリングのためにセッションが除外されているかどうか、およびセッションの有効期限が含まれます。クッキーは、ユーザーが Web サイトを操作するたびに、最大ユーザーセッション期間 (4 時間) を上限にさらに 15 分間延長されます。
dd_site_test_*クッキーのサポートをテストするために使用される一時的なクッキー。すぐに期限切れになります。
dd_cookie_test_*クッキーのサポートをテストするために使用される一時的なクッキー。すぐに期限切れになります。

: RUM ブラウザ SDK の最近のバージョンでは、_dd_l_dd_r_dd のクッキーは、_dd_s に置き換わっています。

技術的な制限

RUM ブラウザ SDK から送信される各イベントは、以下の内容で構築されています。

  • RUM グローバルコンテキスト
  • イベントコンテキスト (ある場合)
  • イベント固有の属性

例:

window.DD_RUM && window.DD_RUM.addRumGlobalContext('global', {'foo': 'bar'})
window.DD_RUM && window.DD_RUM.addAction('hello', {'action': 'qux'})

サンプルコードでは、次のようなアクションイベントを作成しています。

{
  "type": "action",
  "context": {
    "global": {
      "foo": "bar"
    },
    "action": "qux"
  },
  "action": {
    "id": "xxx",
    "target": {
      "name": "hello"
    },
    "type": "custom"
  },
  ...
}

イベントやリクエストが以下の制限を超えた場合、Datadog のインテークによって拒否されます。

プロパティ制限
1 イベントあたりの最大属性数256
1 イベントあたりの最大属性深度20
最大イベントサイズ256 KB
最大インテークペイロードサイズ5 MB

クロスオリジンリードブロッキング警告

Chromium ベースのブラウザで、RUM ブラウザ SDK が Datadog インテークにデータを送信すると、コンソールに CORB 警告 Cross-Origin Read Blocking (CORB) blocked cross-origin response が出力されます。

インテークが空でない JSON オブジェクトを返すため、警告が表示されます。この動作は、報告されている Chromium の問題です。RUM ブラウザ SDK に影響を与えるものではないので、無視して大丈夫です。

その他の参考資料