Sentryとは?
Sentryはエラーモニタリングツールになります!
アプリケーションのエラーや例外をリアルタイムで検出し、
詳細な情報を収集・表示するためのツールです。
Sentryを導入するといいこと
Sentryを導入することで、以下の利点があります:
Sentryの導入方法(Spring Boot)
今回はSpring Bootのプロジェクトを例に、導入をしてみます。
1. Sentryの新規登録
下記からSentryの公式から新規登録をしてください!
個人開発レベルであれば、課金は不要かと個人的に思います。
新規登録
公式ページにアクセスすると下記のような画面が表示されるので、
各種入力をしましょう。
Install
登録が終わったら早速「Install Sentry」からStartしましょう!
SDKを入れる
今回はJavaを例に説明していますが、色々SDKが用意されてます!
2. 依存関係を追加
gradleとmavenで記載方法は異なりますが、
バージョンは導入時の内容に合わせてください!
mavenの場合
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring-boot-starter-jakarta</artifactId>
<version>6.19.1</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>6.19.1</version>
</dependency>
gradleの場合
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.sentry:sentry-spring-boot-starter-jakarta:6.19.1'
implementation 'io.sentry:sentry-logback:6.19.1'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
3. SentryのDSNを設定
次にapplication.propertiesにSentryの
DSN(プロジェクトの識別子)を追加します!
# DSNはSentryを導入時に
sentry.dsn=https://<YOUR_SENTRY_DSN>@sentry.io/<PROJECT_ID>
# 環境を指定(production, stagingなど)
sentry.environment=development
DSNを設定する必要がありますが、DSNの説明は以下になるので
こちらはご確認ください!
4. Springの方でエラーを発生させる
Springの方でSentryに意図的なエラーを発生させましょう!
@Controller
public class ErrorController {
@GetMapping("/a")
public String generateError() {
try {
throw new Exception("This is Test.");
} catch (Exception e) {
Sentry.captureException(e);
}
}
}
アプリケーションを起動し、
「/a」 にアクセスしてエラーがSentryに表示されるか確認します。
(「/a」は今思うと少し適当でしたが・・w)
5. エラーをSentryで見てみよう!
キターーーーーーー!
少々見づらいので、拡大。
「This is Test.」のメッセージがしっかり送信されてますね!
どんな情報が見れるの?
下記ページにアクセスしてみましょう。
エラーが出た箇所
エラーレベルやエラーが出たURL等が出てますね!
後はGETメソッド等などの情報もありそうです。
スタックトレース
スタックトレース等もみれます。
発生頻度
後はエラーの回数や頻度が分かります。
今回は手動で1度エラーを発生しただけですが、
- 優先度
- 頻度
- ユーザ数
まで画面から把握ができそうですね!
Slack通知
左側メニューから、Settings > Integrations で
様々な連携ができることがわかります!
※連携を行うにはteamPlan以上が必要です。
通知はこちらの記事で詳しく確認できます!
料金プラン
無課金ですと1人のみの使用で、単純なエラーや通知程度ならできそうです!
Slack等の通知や複数の開発者が使用できるには、「Team」プラン以上が必要みたいです。
- Team:1ヶ月26ドル
- Business:1ヶ月80ドル
- Enterprise:必要な機能だけ選択するプラン?(ご存知の方教えていただけると!)
まとめ
構築お疲れ様でした!
今回はJavaを例にしましたが、他言語でも結構簡単に
エラーが見えるようになります。
情報も多いので、個人開発にも現場にも役に立てるかと
思います!