Djang 1.3 개발 환경 세팅 - 에러 추적 및 모니터링 도구 설치 (Sentry)

Kwon, Hyojin·2021년 3월 21일
0

Django

목록 보기
3/9
post-custom-banner

Sentry를 이용하면 배포후 에러가 발생했을 때 바로 이슈 알림을 받을 수 있기 때문에 빠르게 디버깅 가능합니다.

(https://sentry.io/welcome)

  1. 회원가입

  2. 사용 언어 선택 (Django)

  3. Django SDK 설정 (어떻게 하는지 해당 페이지에서 다 알려줌..!)

    1. senstry-sdk 설치

    2. 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
      )
    3. 에러 발생 코드 작성

      # velog/config/urls.py
      
      def trigger_error(request):
          division_by_zero = 1 / 0
      
      
      urlpatterns = [
      	# ...
          path('sentry-debug/', trigger_error),
      ]
    4. 배포 후 에러발생 테스트 (http://192.168.0.2/sentry-debug/ 접속)

      • 13분 전, 배포 서버의 5432 포트가 연결되어 있지 않아 OperationalError 에러가 떴었네요.

      • 2분 전, 진짜 확인하고자 했던 /sentry-debug/ 라우트시 ZeroDivisionError 에러 확인

      • Firefox에서 다시 에러 발생시켰을 경우

    5. 이슈 해결 처리

    6. 코드 수정 후 다시 테스트

      # velog/config/urls.py
      # ...
      def trigger_error(request):
          try:
              division_by_zero = 1 / 0
          except ZeroDivisionError:
              return HttpResponse('0으로 나누면 에러떠요!!')
      # ...


profile
파이썬 웹 백엔드 개발자
post-custom-banner

0개의 댓글