KO EN

[Spring Boot] Sentry 기본 설정

by 민갤

Back End /

Sentry

애플리케이션에서 발생하는 오류를 추적하고 수집하여 분석할 수 있도록 도와주는 소프트웨어 모니터링 도구입니다.

프로젝트 생성

Sentry를 설정할 플랫폼을 선택하고, 프로젝트명과 팀을 지정합니다.

프로젝트가 생성되면 선택한 플랫폼에 Sentry를 설정하는 방법을 친절하게 알려줍니다.

이 글에서는 문서(링크)에서 알려주는 방법으로 Sentry를 설정합니다.

 캡처 2023-12-14 085740.png

최초 생성 시 화면

 캡처 2023-12-14 085805.png

Spring Boot를 선택합니다. 스크롤을 내리면 프로젝트명을 설정할 수 있습니다.

 캡처 2023-12-14 085842.png

Spring Boot 설정 방법

DSN(Data Source Name) 확인하기

클라이언트에서 Sentry로 에러 정보를 전달하기 위해 사용되는 URL입니다.

프로젝트 생성 시 나타난 화면에서 DSN 값을 확인하거나 프로젝트 설정에서 DSN 값을 확인하여 복사합니다.

  • Settings > Projects > 해당 Project > Client Keys (DSN)
 캡처 2023-12-14 103444.png

DSN Copy

Dependency

이 글에서는 Spring Boot 3과 Kotlin을 사용하고 있습니다.

build.gradle.kts

dependencies {
    implementation("io.sentry:sentry-spring-boot-starter-jakarta:7.0.0")
}

Configure

application.yml

sentry:
    dsn: "${SENTRY_DSN:sentry-dsn}"
    traces-sample-rate: 1.0
    exception-resolver-order: -2147483647
  • dsn
  • 이벤트를 보낼 위치를 설정합니다.
  • 위에서 복사한 DSN 값을 env를 사용하여 작성합니다.
  • 이 값이 설정되어 있지 않으면 환경변수 SENTRY_DSN를 읽습니다.
  • 환경변수도 설정되어 있지 않으면 이벤트를 보내지 않습니다.
  • traces-sample-rate
  • 오류 발생 시 Sentry로 전송되는 트랜잭션의 양을 제어합니다.
  • 0(0%)에서 1(100%) 사이의 숫자를 사용합니다.
  • 예를 들어 0.2를 설정하면 약 20%가 기록되어 전송됩니다.
  • exception-resolver-order
  • 예외 해결 프로그램 순서를 설정합니다. (참고)
  • -2147483647(org.springframework.core.Ordered#HIGHEST_PRECEDENCE)로 설정하면 Spring 예외 처리기에서 처리된 오류는 Sentry로 전송하지 않습니다.
  • 예를 들어 try-catch로 처리된 예외는 Sentry로 전달되지 않습니다.
try {
    throw RuntimeException()    // Sentry로 전달되지 않는다.
} catch (e: Exception) {
    throw CustomException()     // Sentry로 전달된다.
}

Monitoring

설정이 끝나면 Spring Boot에서 오류가 발생할 경우

 캡처 2023-12-14 110158.png

Spring Boot Error

Sentry로 오류 정보가 수집됩니다.

 캡처 2023-12-14 110140.png

Sentry Issue

또한 가입한 이메일로도 알림이 옵니다.

필요하다면 슬랙으로 알림이 오도록 설정할 수도 있습니다.

 캡처 2023-12-14 115625.png

Email Sentry Issue

Timezone 설정하기

좌측 상단 팀명 > User settings > Account Details> Timezone

Sentry Timezone은 기본적으로 UTC입니다. 현지 국가로 변경하면 시간 계산없이 편하게 볼 수 있습니다.

 캡처 2023-12-14 120610.png

Timezone 설정

Reference

https://docs.sentry.io/product/

Author

민갤

민갤

Back-End Developer

꾸잉꾸잉하고 웁니다.

로그인

디코에 오신 것을 환영해요!
전문가들의 수많은 아티클 창고 🤓