概要
Error Tracking は、Browser SDK によってブラウザから収集されたエラーを処理します。スタックトレースを含む source、custom、report、または console エラーが収集されるたびに、Error Tracking はそれを処理し、Error Tracking Explorer で確認できる Issue、つまり類似したエラーのグループとしてまとめます。
前提条件
Browser SDK の最新バージョンをダウンロードします。
セットアップ
ブラウザアプリケーションから Datadog に Error Tracking データの送信を開始するには、「アプリ内のセットアップ手順」に従うか、以下の手順に従ってください。
ステップ 1 – アプリケーションを作成する
- Datadog で、Errors > Settings > Browser and Mobile > Add an Application ページに移動し、[JavaScript (JS)] アプリケーションタイプを選択します。
- アプリケーション名を入力し、[Create Application] をクリックします。これにより、アプリケーションの
clientToken と applicationId が生成されます。
ステップ 2 – 適切なインストール方法を選択する
Browser SDK のインストールタイプを選択します。
最新の Web アプリケーションでは、npm (Node Package Manager) を使用したインストールが推奨されます。Browser SDK は、フロントエンドの JavaScript コードの残りの部分と一緒にパッケージ化されています。それで、ページのロードパフォーマンスには影響しません。ただし、SDK が初期化される前にトリガーされたエラー、リソース、ユーザーアクションは、SDK で捕捉できない場合があります。Datadog では、Browser Logs SDK と一致するバージョンの使用を推奨しています。
@datadog/browser-rum を package.json ファイルに追加し、次のように初期化します。
import { datadogRum } from '@datadog/browser-rum';
datadogRum.init({
applicationId: '<APP_ID>',
clientToken: '<CLIENT_TOKEN>',
service: '<SERVICE>',
env: '<ENV_NAME>',
// site: '<SITE>',
// version: '1.0.0',
trackUserInteractions: true,
trackResources: true
});
trackUserInteractions パラメーターを使用すると、アプリケーション内でのユーザーのクリック操作を自動的に収集できます。操作対象の要素を特定するために、ページに含まれる機密情報や個人情報が収集データに含まれる場合があります。
パフォーマンス目標がある Web アプリケーションには、CDN 経由での非同期インストールが推奨されます。Browser SDK は Datadog の CDN から非同期でロードされ、SDK のダウンロードがページのロードパフォーマンスに影響を与えることはありません。ただし、SDK が初期化される前にトリガーされたエラー、リソース、ユーザーアクションは、SDK で捕捉できない場合があります。
生成されたコードスニペットを、アプリケーションで監視するすべての HTML ページの head タグに追加します。 サイトの場合:
<script>
(function(h,o,u,n,d) {
h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin=''
n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
})(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v7/datadog-rum.js','DD_RUM')
window.DD_RUM.onReady(function() {
window.DD_RUM.init({
clientToken: '<CLIENT_TOKEN>',
applicationId: '<APP_ID>',
// site: '<SITE>',
service: '<APP_ID>',
env: '<ENV_NAME>',
// version: '1.0.0'
});
})
</script>
trackUserInteractions パラメーターを使用すると、アプリケーション内でのユーザーのクリック操作を自動的に収集できます。操作対象の要素を特定するために、ページに含まれる機密情報や個人情報が収集データに含まれる場合があります。
すべてのイベントを収集するには、CDN 経由での同期インストールが推奨されます。Browser SDK は Datadog の CDN から同期的にロードされ、最初にロードされること、すべてのエラー、リソース、およびユーザーアクションを収集できることを保証します。この方法はページのロードパフォーマンスに影響を与える可能性があります。
生成されたコードスニペットを、アプリケーションで監視するすべての HTML ページの head タグ (他の script タグの前) に追加します。script タグを上部に配置し、同期的にロードすることで、Datadog RUM によりすべてのパフォーマンスデータとエラーを収集できるようになります。 サイトの場合:
<script
src="https://www.datadoghq-browser-agent.com/us1/v7/datadog-rum.js"
type="text/javascript"
crossorigin>
</script>
<script>
window.DD_RUM && window.DD_RUM.init({
clientToken: '<CLIENT_TOKEN>',
applicationId: '<APP_ID>',
// site: '<SITE>',
service: '<APP_ID>',
env: '<ENV_NAME>',
// version: '1.0.0'
});
</script>
trackUserInteractions パラメーターを使用すると、アプリケーション内でのユーザーのクリック操作を自動的に収集できます。操作対象の要素を特定するために、ページに含まれる機密情報や個人情報が収集データに含まれる場合があります。
TypeScript (オプション)
TypeScript プロジェクトで SDK を初期化する場合は、以下のコードスニペットを使用してください。型定義は TypeScript 3.8.2 以降と互換性があります。
それより前のバージョンの TypeScript を使用している場合は、コンパイル時の問題を避けるため、JavaScript ソースをインポートし、グローバル変数を使用してください。
import '@datadog/browser-rum/bundle/datadog-rum'
window.DD_RUM.init({
applicationId: 'XXX',
clientToken: 'XXX',
site: 'datadoghq.com',
trackUserInteractions: true,
trackResources: true,
...
})
- unified service tagging を使用するために、[Environment] フィールドでアプリケーションの環境 (
env) を定義します。 - unified service tagging を使用するために、[Service] フィールドでアプリケーションのサービス (
service) を定義します。 - ユーザー入力のプライバシーレベルを設定します。詳細については、「Session Replay ブラウザのプライバシーオプション」を参照してください。
- 初期化スニペットで、デプロイするアプリケーションのバージョン番号 (
version) を設定します。詳細については、「タグ付け」を参照してください。 - 必要に応じて追加のパラメーターを設定します。利用可能なすべてのオプションについては、以下の」構成リファレンス」セクションを参照してください。
ステップ 4 – アプリケーションをデプロイする
アプリケーションに変更をデプロイします。デプロイが完了し稼働状態になると、Datadog はユーザーのブラウザからイベントを収集し始めます。
ステップ 5 – ソースマップと WebAssembly シンボルをアップロードする (オプションですが推奨)
JavaScript のソースマップをアップロードすると、非縮小スタックトレースにアクセスできます。「ソースマップアップロードガイド」を参照してください。
ブラウザアプリケーションで WebAssembly を使用している場合は、Browser SDK の WASM プラグインを設定し、モジュールのデバッグシンボルをアップロードしてください。
ステップ 6 – データを可視化する
Browser Error Tracking の基本セットアップが完了したので、アプリケーションではブラウザエラーを収集するようになり、リアルタイムで問題の監視やデバッグを開始できます。
収集されたデータをダッシュボードで可視化したり、Error Tracking で検索クエリを作成したりできます。
Datadog がデータの受信を開始するまで、アプリケーションは pending ページに Applications として表示されます。
ステップ 7 – エラーとソースコードをリンクする (オプション)
Datadog CLI では、ソースマップの送信に加えて、コミットハッシュ、リポジトリ URL、コードリポジトリ内の追跡対象ファイルパスのリストといった Git 情報も送信します。
Error Tracking は、この情報を使ってエラーとソースコードを関連付けます。これにより、任意のスタックトレースフレームからGitHub、GitLab、Bitbucket 上の該当するコード行へ直接移動できるようになります。
スタックフレームからソースコードへのリンク機能は、
Datadog CLI バージョン
0.12.0 以降で利用可能です。
詳細については、「Datadog Source Code Integration」を参照してください。
Error Tracking のためのタグ付け
(上記のステップ 3 で設定する) これらのタグは、Error Tracking の機能を強化します。
service と env による問題のフィルタリングとファセット- 同じ
service/env における RUM、Logs、APM とのクロスプロダクト相関 - アップロード時に設定した同じ
service および version による、アップロード済みソースマップの照合
サービスとは、一連のページにマッピングされた、独立したデプロイ可能なコードリポジトリのことです。
- ブラウザアプリケーションがモノリスとして構築されている場合、Datadog アプリケーションのサービス名は 1 つです。
- ブラウザアプリケーションが複数のページに対して別々のリポジトリとして構築されている場合、アプリケーションのライフサイクルを通じてデフォルトのサービス名を適切に編集してください。
詳細については、Datadog でのタグ付けをご覧ください。
構成リファレンス
利用可能な構成オプションの全一覧については、「Browser SDK API リファレンス」を参照してください。
次のステップ
未処理の例外、未処理の Promise 拒否、処理済みの例外、処理済みの Promise 拒否、および Browser SDK が自動的に追跡しないその他のエラーを監視できます。詳細については、「ブラウザエラーの収集」をご覧ください。
参考資料