LoginSignup
2
0

More than 1 year has passed since last update.

SentryでのReleaseの導入方法

Posted at

エラーのトラッキングソフトウェアにSentryを利用する機会があり、運用する中でSentryのRelease機能が便利だなと思ったので導入方法を執筆していきます。
この記事ではsentry-cliを利用した設定方法を記述していきます。sentry-webpack-pluginを使用した設定方法は扱いません。
SentryはAngularアプリケーションで利用していました。

Sentry Releasesとは

Sentry Releasesを利用するとどのバージョンでエラーが発生したのか特定できるようになり、バージョン別のエラーモニタリングが可能になります。
Sentryにリリースのバージョンとリリースのアーティファクトをアップロードすることで、利用できるようになります。
また、ソースマップをアップロードすることでstack traceがソースマップと関連付けられ、Minifyされてないコードで表示されるようになります。そうすることで、エラー原因となるコードが特定しやすくなります。
※ソースマップとは、デプロイされたコードを元のソースコードにマッピングする方法を含むファイルです。ソースマップによりstack traceから得たコードを、変換されてない元の形で見ることが可能になります。

SentryへのReleasesの登録方法

Sentryにリリースを登録したい場合、sentry-cliコマンドを利用し、下記を実行するだけです。

sentry-cli releases -o "$ORGANIZATION" -p "$PROJECT" new "$VERSION"

上記コマンドを実行してSentryにリリースを作成した後、アプリケーションでSentry.init()を呼び出している箇所にreleaseを追加し、作成したリリースと同じバージョンを記述します。
一貫性を保証するために、リリースバージョンをプロジェクト内で環境変数として設定するのが良いかと思います。

app.module.ts
import * as Sentry from "@sentry/angular";
...
Sentry.init({
    dsn: ${YOUR_SENTRY_DSN},
    release: ${VERSION}
});

ソースマップのアップロード方法

Sentryへのソースマップのアップロードにはsentry-cli releases files VERSION upload-sourcemapsを使用します。
上記のアップロードコマンドをリリースフローに組み込むのが運用的にラクかと思います。
ソースマップのアップロードコマンドを実行した時点で、Sentryにリリースが作成されます。(sentry-cli releases newと同等の働き)
下記コマンド例になります。

sentry-cli releases -o "$ORGANIZATION" -p "$PROJECT" files "$VERSION" upload-sourcemaps ${path_to_sourcemaps} --rewrite --url-prefix ~/static/js

--rewriteオプションを付与すると対象のリリースに既にアーティファクトがアップロードされていても、上書きされます。
--url-prefixオプションを付与するとアップロードする全てのファイルの前にプレフィックスが設定されます。デフォルトでは~/が設定されているので、変更したい場合に使用します。stack trace上でのパスとアップロードするファイルのパスは一致している必要があるので、プレフィックスが異なる場合は--url-prefixの設定が必須になります。

以上、SentryのReleaseの導入方法に関して簡単に紹介しました。
他にもリリースにデプロイやコミットを関連づけることも可能なので、エラーモニタリングをより効果的に運用できそうです。

参考
https://docs.sentry.io/product/cli/releases/
https://docs.sentry.io/platforms/javascript/sourcemaps/

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0