어떻게 Sentry 를 사용 하여 당신 의 Spring Boot 응용 프로그램 을 감시 합 니까?
프로젝트 생 성
먼저 힌트 에 따라 Sentry 에서 프로젝트 를 만들어 야 합 니 다.프로젝트 플랫폼(platform)은 Spring Boot 나 자바 를 선택 할 수 있 습 니 다.
의존&설정 도입
Sentry 는 공식 적 인 Spring Boot Starter 를 제공 합 니 다.
<dependency>
 <groupId>io.sentry</groupId>
 <artifactId>sentry-spring-boot-starter</artifactId>
 <version>3.1.1</version>
</dependency>
sentry.dsn=https://key@host/id우리 의 Controller 를 작성 하여 간단 한 이상 을 던 져 보 세 요.
@RestController
public class HelloController {
 @RequestMapping("/")
 public void test() {
  throw new IllegalArgumentException("hello world");
 }
} 
  이 이상 을 클릭 하면 상세 한 정 보 를 볼 수 있 습 니 다.이 이상 한 기본 정 보 를 볼 수 있 습 니 다.예 를 들 어'사용자 정보(여기 설정 되 지 않 음)','사용자 환경','태그(Tag)','스 택 추적(StackTrace)호출','로그 필름(Breadcrumbs)','Headers 요청',그리고 일부 사용자 가 사용자 정의 할 수 있 는 내용(Context 라 고 함)을 볼 수 있 습 니 다.
 
  여기 서 Sentry 의 개념 을 소개 하려 면 먼저 같은 곳 에서 발생 하 는 이상 은'Issue'로 요약 되 고 매번 이곳 에서 발생 하 는 이상 을'Event'라 고 합 니 다.그래서 같은 곳 에서 두 번 이상 을 일 으 키 지만 하나의 Issue 만 있 지만 이벤트 페이지 에서 두 개의 사건 을 볼 수 있 습 니 다.
 
 사용자 정의 정보
이 이상 을 알 게 된 이상 어떤 사용자 가 촉발 한 이상 인지 알 고 싶 습 니 다.Sentry SDK 는 Sentry User Provider 를 제공 합 니 다.이상 할 때 사용자 정 보 를 제공 할 수 있 습 니 다.저 희 는 Bean 하나만 설정 해 야 합 니 다.
@Bean
  public SentryUserProvider sentryUserProvider(){
    return () -> {
      //        ,           
      User user = new User();
      user.setId("userId");
      user.setUsername("  ");
      user.setEmail("[email protected]");
      return user;
    };
  } 
 태그 로 이상 을 선별 할 수 있 도록 태그 사용자 정의
이상 정보 가 증가 함 에 따라 저 희 는 특정한 이상 정 보 를 선별 하고 싶 습 니 다.Sentry 는'태그(Tag)'기능 을 제공 하여 태그 에 따라 선별 할 수 있 습 니 다.자체 태그 가 충분 하지만 업무 수요 에 따라 사용자 정의 할 수 있 기 를 바 랍 니 다.물론 Sentry SDK 는 Beforesend Callback 을 제공 합 니 다.이 를 통 해 태 그 를 추가 할 수 있 습 니 다.
@Bean
  public SentryOptions.BeforeSendCallback beforeSendCallback(){
    return (event, hint) -> {
      event.setTag("name","zhangsan");
      return event;
    };
  } 
 통합 로그 백
기 존의 Spring Boot 업무 에는 이상 처리 가 포함 되 어 있 을 수 있 으 며,대부분의 이상 은 로그 형식 으로 직접 기록 되 어 있 을 수 있 습 니 다.물론 Sentry 도 Logback/Log4j 2 와 같은 로그 프레임 워 크 를 지원 합 니 다.의존 도 를 가 져 오기 만 하면 됩 니 다.Logback 을 예 로 들 겠 습 니 다.
<dependency>
 <groupId>io.sentry</groupId>
 <artifactId>sentry-logback</artifactId>
 <version>3.1.1</version>
</dependency>
@RestController
public class HelloController {
  private static Logger logger = LoggerFactory.getLogger(HelloController.class);
  
  @RequestMapping("/")
  public void test(){
    logger.error("Logback error!");
  }
} 
  설정 파일 에 minimum-event-level 과 minimum-breadcrumb-level 을 설정 하면 어떤 log 단계 가'이벤트'를 만 들 수 있 는 지,어떤 log 단계 가 다음'로그 필름(Breadcrumbs)'을 기록 할 지 지정 할 수 있 습 니 다.전 제 는 logger 의 단계 가 이 단계 보다 낮 거나 같 거나 같 습 니 다(그렇지 않 으 면 수집 할 수 없습니다).
sentry.logging.minimum-event-level=info
sentry.logging.minimum-breadcrumb-level=debugSentry 는 공식 판 외 에 도 자체 위탁 관리 버 전의 Sentry 를 만 들 수 있다.정부 판 에 용량 제한 이 있어 서 비용 을 지불해 야 할 수도 있다.자체 위탁 판 은 용량 제한 이 없 지만 정 부 는 기술 지원 을 제공 하지 않 는 다.자체 적 으로 Sentry 를 만 드 는 것 도 매우 간단 하 다.Docker 와 Docker Compose 가 필요 하고 하드웨어 에 최소 2.4G 의 남 은 메모리 가 필요 하 다.
git clone https://github.com/getsentry/onpremise.git
cd onpremise
./install.sh공식 문서
본 고 는 자주 사용 하 는 기능 만 소개 하고 Sentry 와 관련 된 더 많은 기능 은 공식 문 서 를 참고 하 는 것 을 권장 합 니 다docs.sentry.io
Sentry 를 사용 하여 스프링 부 트 애플 리 케 이 션 을 모니터링 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Sentry 모니터링 스프링 부 트 애플 리 케 이 션 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NextJS/ReactJS에서 sentry 가져오기프런트엔드의 오류 모니터링 툴입니다. 서버 쪽에서 로그 출력 수단이 있어요. 전단에 로그를 저장하는 메커니즘이 없습니다. 오류 로그를 서버에 보내는 것을 설치해야 합니다. sentry는 쉽게 실현할 수 있고 분석 오...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.