어떻게 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)를 가 져 올 application.properties 를 설정 해 야 합 니 다.
sentry.dsn=https://key@host/id
첫 번 째 오류우리 의 Controller 를 작성 하여 간단 한 이상 을 던 져 보 세 요.
@RestController
public class HelloController {
@RequestMapping("/")
public void test() {
throw new IllegalArgumentException("hello world");
}
}
이전 설정 에 문제 가 없 으 면 Sentry 의'Issue'패 널 에서 이 이상 한 정 보 를 볼 수 있 습 니 다.이 이상 을 클릭 하면 상세 한 정 보 를 볼 수 있 습 니 다.이 이상 한 기본 정 보 를 볼 수 있 습 니 다.예 를 들 어'사용자 정보(여기 설정 되 지 않 음)','사용자 환경','태그(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>
Sentry Spring Boot Starter 는 의존 도 를 자동 으로 모니터링 하고 해당 하 는 설정 을 설정 합 니 다.우 리 는 기 존의 이상 을 log 로 대체 하여 던 질 수 있 습 니 다.
@RestController
public class HelloController {
private static Logger logger = LoggerFactory.getLogger(HelloController.class);
@RequestMapping("/")
public void test(){
logger.error("Logback error!");
}
}
여기 서 재 미 있 는 점 은 처리 되 지 않 은 야생 이상 에 대해 서 는 Sentry 가 fatal 등급 을 주 고 Logback 을 도입 하면 logger 로그 등급 을 사용 한 다 는 점 이다.설정 파일 에 minimum-event-level 과 minimum-breadcrumb-level 을 설정 하면 어떤 log 단계 가'이벤트'를 만 들 수 있 는 지,어떤 log 단계 가 다음'로그 필름(Breadcrumbs)'을 기록 할 지 지정 할 수 있 습 니 다.전 제 는 logger 의 단계 가 이 단계 보다 낮 거나 같 거나 같 습 니 다(그렇지 않 으 면 수집 할 수 없습니다).
sentry.logging.minimum-event-level=info
sentry.logging.minimum-breadcrumb-level=debug
자체 건설 SentrySentry 는 공식 판 외 에 도 자체 위탁 관리 버 전의 Sentry 를 만 들 수 있다.정부 판 에 용량 제한 이 있어 서 비용 을 지불해 야 할 수도 있다.자체 위탁 판 은 용량 제한 이 없 지만 정 부 는 기술 지원 을 제공 하지 않 는 다.자체 적 으로 Sentry 를 만 드 는 것 도 매우 간단 하 다.Docker 와 Docker Compose 가 필요 하고 하드웨어 에 최소 2.4G 의 남 은 메모리 가 필요 하 다.
git clone https://github.com/getsentry/onpremise.git
cd onpremise
./install.sh
그 다음 에 localhost:9000 에서 자체 적 으로 만 든 Sentry 를 볼 수 있 습 니 다.Nginx 역방향 프 록 시 조정 포트 에 맞 춰 80/443 까지 사용 할 수 있 습 니 다.공식 문서
본 고 는 자주 사용 하 는 기능 만 소개 하고 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에 따라 라이센스가 부여됩니다.