概要
DataDog で sourcemap を利用して、コンパイル前のファイルを参照させる方法を調べてみた。
DataDog の sourcemap 対応状況
DataDog は sourcemap に対応している。
参照: Make Sense of Application Issues With Datadog Error Tracking | Datadog
datadog-cli を利用し、sourcemap をアップロードすることができる。
参照: datadog-ci/src/commands/sourcemaps at master · DataDog/datadog-ci
sourcemap をアップロード
sourcemap をアップロードする手順について。
まず、datadog-cli の npm package を用意する。
# npm $ npm install --save-dev @datadog/datadog-ci # Yarn $ yarn add --dev @datadog/datadog-ci
ちなみに datadog-cli には、sourcemap 以外にも lambda, synthetics という機能もあるらしい(詳細未調査)。
環境変数を設定する。
# Environment setup export DATADOG_API_KEY="<API KEY>"
sourcemap をアップロードするコマンドは以下のようになる。
$ datadog-ci sourcemaps upload ./build --service my-service --minified-path-prefix https://static.datadog.com --release-version 1.234
以下、コマンドの引数について。
必須なものは以下の通り。
最初の引数(
./build
)は sourcemap の格納ディレクトリ。対象の JS ファイルと同階層に置かれている必要がある。--service
(必須) は、sourcemap のアップロード先。datadog sdk のservice
として設定したものと一致させる。--release-version
(必須) は、datadog sdk で設定したversion
タグと一致させる。--minified-path-prefix
(必須) は、error 発生箇所となる URL にマッチする prefix 。un-minify する際、この prefix の sourcemap のディレクトリパスが結合される。
任意設定の引数は以下の通り。
--project-path
(デフォルト値: 空) は、ファイルシステム上のプロジェクトのパス。--concurrency
(デフォルト値: 20) は、同時アップロード数。--dry-run
(デフォルト値: false) は、最後の工程であるアップロード処理以外を実行する。