Sentry 설정, 슬랙 연동 (Nodejs)

Singsoong·2022년 10월 14일
0

기타

목록 보기
2/5

📌 Sentry

  • Sentry는 코드의 오류를 식별하고 분류하는데 도움이 되는 외부 모니터링 및 로깅 서비스를 제공함

  • 모든 로그를 기록하는 것이 아닌 error 로그만 기록되어짐

    • 코드 상에서 errorHandler 를 통해 특정 error code(404, 500) 등만을 에러로 식별할 수 있음.
  • DSN 정보는 비밀로 취급되어 하며, 누구와도 공유되지 않아야 함

    • env로 관리할 예정
  • 각 프로젝트 DSN 확인하는 방법

    • 프로젝트 선택 → 우측 상단 톱니바퀴 버튼 → Client Keys(DSN)

📌 Node.js 프로젝트 만들기

  • Create Project -> Node.js 선택

  • 옵션 선택

    1) I'll create my own alerts later : alert를 설정하지 않고 프로젝트를 만들겠다.
    2) Alert me on every new issue : 새로운 issue가 나올때마다 알림을 주는 alert를 프로젝트 생성 시 만들어 주겠다
    3) When there are more than ... : 1분 동안 unique 한 error가 10번보다 더 생기면 알림을 주겠다

    • 슬랙으로 연동할 계획이므로 alert를 새로 정의할 것이기 때문에 맨위에 항목을 선택한다.

📌 코드 작성

  • 사용할 프로젝트에서 npm install --save @sentry/node 입력
  • Sentry 도구는 코드 흐름에서 가능한 빨리 로드 되어야 함
    • 일반적으로 app.js (혹은 server.js)
  • Sentry 세팅 (app.js)
/* Sentry 세팅 */
Sentry.init({
  dsn: "", // 입력
  tracesSampleRate: 1.0,
});
// 첫번째 미들웨어로 설정
app.use(Sentry.Handlers.requestHandler());
// Sentry 오류 핸들러는 모든 컨트롤러의 뒤와 다른 오류 미들웨어의 앞에 있어야 함
app.use(Sentry.Handlers.errorHandler());

📌 테스트

  • 호출할 api를 만들었고, api를 호출하게 되면 Error를 발생시킨다.
async function testAPI(req, res, next){
	throw new Error("에러 테스트!");
}
  • Postman으로 API 요청

  • 서버 로그 확인

  • Sentry 이슈 확인

  • 클릭 시 어떤 코드에서 발생했는지, 사용자 환경 등 자세한 정보 확인 가능


📌 Sentry <-> Slack 연동

  • Sentry 에서 발생한 issue들을 실시간으로 slack message로 전송 받고 싶은 상황
  • Sentry 계정에 Slack 계정의 워크스페이스 등록하기
    • Setting -> Integrations -> Slack -> Install
  • Alert 등록 (알림 발생 시 슬랙으로 전송하는 이벤트 정의)
    • Alert -> 등록할 프로젝트 선택
    • Create Alert 버튼 클릭
    • 어떤 항목에 따라 알림을 발생 시킬것인지 선택, 맨 위 선택(Issues)
    • 상황에 따라 WHEN, IF값을 넣어주고 THEN에 send a slack 선택 후 슬랙메시지를 전송할 채널 명 입력
    • interval과 alert name 설정 후 save rule

참고한 사이트:

profile
Frontend Developer

0개의 댓글