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 が初期化される場所を確認し、アプリケーションコードの実行の早い段階にこのステップを移動することを検討してください。 |
trackViewsManually: true を設定して、セッションが存在しないことに気づいた場合、ネットワークエラーがないにもかかわらず、アプリケーションが突然 RUM 情報の送信を停止した可能性があります。 | データの損失を防ぐため、RUM を初期化したら必ず初期ビューを開始してください。詳しくは、高度なコンフィギュレーションを参照してください。 |
コンテンツセキュリティポリシーのガイドラインを読み、ウェブサイトが RUM ブラウザ SDK CDN とインテークエンドポイントへのアクセスを許可していることを確認します。
RUM ブラウザ SDK を初期化します
ブラウザコンソールで window.DD_RUM.getInternalContext()
を実行して RUM ブラウザ SDK が初期化されているかどうかを確認し、application_id
、session_id
、およびビューオブジェクトが返されることを確認します。
RUM ブラウザ SDK がインストールされていない場合、または SDK が正常に初期化されていない場合は、次のような ReferenceError: DD_RUM is not defined
エラーが表示される場合があります。
RUM ブラウザ SDK のロードに関連するエラーに気付いた場合は、ブラウザー開発ツールのコンソールまたはネットワークタブを確認することもできます。
注: 正確な結果を確実に得るために、sessionSampleRate
を 100 に設定してください。詳しくは、ブラウザ RUM およびブラウザ RUM & セッションリプレイのサンプリングのためのセットアップの構成を参照してください。
Datadog インテークへのデータ
RUM SDK は、以下のいずれかの条件が満たされるたびに、Datadog のインテークにイベントデータのバッチを送信します。
- 30 秒ごと
- イベント数が 50 件に達したとき
- ペイロードが 16 KB を超えた場合
visibility:hidden
または beforeUnload
の場合
データが送信されている場合、ブラウザ開発ツールの Network セクションに、/v1/input
(URL の起点部分は 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
に置き換わっています。
セッション ID、クッキー、RUM アプリケーション
RUM セッションとそれが属する RUM アプリケーションの間には 1 対 1 の関係があります。したがって、_dd_s
クッキーに設定されたドメインは、完全に監視対象の RUM アプリケーション専用であり、その他のアプリケーションを監視することはできません。
技術的な制限
RUM ブラウザ SDK から送信される各イベントは、以下の内容で構築されています。
- RUM グローバルコンテキスト
- イベントコンテキスト (ある場合)
- イベント固有の属性
例:
window.DD_RUM && window.DD_RUM.setGlobalContextProperty('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 |
“Customer data exceeds the recommended threshold” (顧客データが推奨されるしきい値を超えています) の警告
RUM ブラウザ SDK では、グローバルコンテキスト、ユーザー情報、機能フラグを設定することができ、これらはその後、収集されたイベントに含まれます 。
ユーザーの帯域幅への影響を最小限に抑えるため、RUM ブラウザ SDK は、Datadog インテークに送信されるデータを抑制します。ただし、大量のデータを送信すると、低速のインターネット接続を使用しているユーザーのパフォーマンスには、依然として影響を与える可能性があります。
最高のユーザーエクスペリエンスを得るために、Datadog では、グローバルコンテキスト、ユーザー情報、および機能フラグのサイズを 3KiB 未満に抑えることを推奨しています。データがこの制限を超えると、警告が表示されます: The data exceeds the recommended 3KiB threshold.
v5.3.0 以降、RUM Browser SDK は compressIntakeRequest
初期化パラメーターを介してデータ圧縮をサポートしています。有効にすると、この推奨される制限は 3KiB から 16KiB に拡大されます。
クロスオリジンリードブロッキング警告
Chromium ベースのブラウザで、RUM ブラウザ SDK が Datadog インテークにデータを送信すると、コンソールに CORB 警告 Cross-Origin Read Blocking (CORB) blocked cross-origin response
が出力されます。
インテークが空でない JSON オブジェクトを返すため、警告が表示されます。この動作は、報告されている Chromium の問題です。RUM ブラウザ SDK に影響を与えるものではないので、無視しても問題ありません。
その他の参考資料