Sentry로 FastAPI 앱 에러 모니터링하기 (+ 슬랙 연동)

나른한 개발자·2022년 7월 26일
0

studylog

목록 보기
43/45
post-custom-banner

프로젝트 생성 및 이슈 모니터링

  1. sentry.io 가입 후 원하는 플랫폼 선택 -> create project
  • FastAPI는 목록에 없어 python으로 선택하였다.

  1. 안내에 따라 패키지 설치
pip3 install --upgrade sentry-sdk

  1. 에러 발생 테스트 해보기
    sample.py를 만들어 화면에 나오는 예제코드를 그대로 실행시켜보았다.
import sentry_sdk
sentry_sdk.init(
    dsn="화면에 나오는 코드 그대로 복사",

    # Set traces_sample_rate to 1.0 to capture 100%
    # of transactions for performance monitoring.
    # We recommend adjusting this value in production.
    traces_sample_rate=1.0
)

division_by_zero = 1 / 0   # 에러 유발 코드

  1. 대시보드에서 이슈 확인


  1. FastAPI에 미들웨어 추가
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
import sentry_sdk

sentry_sdk.init(
    dsn="dns코드",
    environment="dev"
)

app = FastAPI()
app.add_middleware(SentryAsgiMiddleware)

위와 같이 미들웨어를 추가해주면 api요청 처리 시 발생하는 에러들을 sentry에서 모니터링 할 수 있다. 에러 처리는 다음과 같이 해주면 된다.

import sentry_sdk

try:
	"""에러발생코드"""
except Exception as ex:
    sentry_sdk.capture_exception(ex)

슬랙 연동

  1. settings -> Integrations -> slack -> add workspace 에서 슬랙 알람을 처리할 워크스페이스 추가

  1. 알람을 처리할 프로젝트에 Add Alert Rules 선택

  1. select alert 에서 issue 선택

  1. 원하는 조건 설정 후 send a slack notification을 선택해주고 에러 발생 메세지를 보낼 채널명을 작성

  1. save rules

이제 엔드포인트 요청을 처리했을때 에러가 발생한 것도 함께 확인 할 수 있다.

[sentry 대시보드]

[슬랙 채널]

profile
Start fast to fail fast
post-custom-banner

0개의 댓글