トラブルシューティング

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

データがない

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

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

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

Browser RUM SDK の初期化

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

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

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

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

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

Datadog インテークへのデータ

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

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

RUM クッキー

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

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

: 過去に使用されたクッキーは、_dd_l_dd_r_dd です。その後、SDK の最近のバージョンでこれらは _dd_s に置き換えられ、同じ目的を持っていました。

技術的な制限

Browser 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 ベースのブラウザで、Browser RUM SDK が Datadog インテークにデータを送信すると、コンソールに CORB 警告が出力されます。

Cross-Origin Read Blocking (CORB) blocked cross-origin response

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

その他の参考資料