Sentry를 이용하면 배포후 에러가 발생했을 때 바로 이슈 알림을 받을 수 있기 때문에 빠르게 디버깅 가능합니다.
회원가입
사용 언어 선택 (Django)
Django SDK 설정 (어떻게 하는지 해당 페이지에서 다 알려줌..!)
senstry-sdk
설치
settings.py
파일에 SDK 설정 추가
# velog/config/settings/prod.py
import sentry_sdk
from sentry_sdk.integrations.djsngo import DjangoIntegration
# ...
sentry_sdk.init(
dsn=config('SENTRY_DSN'), # .env 파일에 값 저장
integrations=[DjangoIntegration()],
# 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,
# If you wish to associate users to errors (assuming you are using
# django.contrib.auth) you may enable sending PII data.
send_default_pii=True
)
에러 발생 코드 작성
# velog/config/urls.py
def trigger_error(request):
division_by_zero = 1 / 0
urlpatterns = [
# ...
path('sentry-debug/', trigger_error),
]
배포 후 에러발생 테스트 (http://192.168.0.2/sentry-debug/
접속)
13분 전, 배포 서버의 5432 포트가 연결되어 있지 않아 OperationalError 에러가 떴었네요.
2분 전, 진짜 확인하고자 했던 /sentry-debug/
라우트시 ZeroDivisionError 에러 확인
Firefox에서 다시 에러 발생시켰을 경우
이슈 해결 처리
코드 수정 후 다시 테스트
# velog/config/urls.py
# ...
def trigger_error(request):
try:
division_by_zero = 1 / 0
except ZeroDivisionError:
return HttpResponse('0으로 나누면 에러떠요!!')
# ...