コンパイラかく語りき

import { Fun } from 'programming'

【JavaScript】DataDog で sourcemap(ソースマップ)対応する方法

概要

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 sdkservice として設定したものと一致させる。

  • --release-version (必須) は、datadog sdk で設定した version タグと一致させる。

  • --minified-path-prefix (必須) は、error 発生箇所となる URL にマッチする prefix 。un-minify する際、この prefix の sourcemap のディレクトリパスが結合される。

任意設定の引数は以下の通り。

  • --project-path (デフォルト値: 空) は、ファイルシステム上のプロジェクトのパス。

  • --concurrency (デフォルト値: 20) は、同時アップロード数。

  • --dry-run (デフォルト値: false) は、最後の工程であるアップロード処理以外を実行する。