Old Branch

Sentry.io 에러 로깅

woolbro 2020. 6. 23. 11:30
반응형

Sentry.io

sentry.io 를 사용해서 로그(에러로그) 수집

Sentry - error

Sentry 둘러보기

Sentry는 Application Monitoring 도구이다.

특히, 에러로그를 수집하는 데에 특화 되었다. 각 코드의 에러들을 모아서 웹에서 확인 할 수 있도록 도와주는 플랫폼이다.

Application Monitoring and Error Tracking Software

가장 흔한 예로 아래에서 Python 코드를 예로 들었다

try:
    pass # 예외가 없이 잘 실행되는 코드
except Exception as e:
    #(1)
    pass # 예외가 처리 될 때 실행 되는 코드 --> Sentry.io에 Exception이 적재됨
finally:
    pass # 예외 여부 상관에 없이 가장 마지막에 실행 되는 코드

(1)번 에서 위의 코드가 exception이 발생했다고 예를 들면 exception이 발생 될 때의 in / out 데이터,

발생된 코드의 위치, 실행된 환경 등을 묶어서 Sentry.io로 보내서 확인을 할 수 있도록 해준다.

Sentry 사용하기

회원가입 및 로그인

회원가입과 로그인은 Github, Google 등의 계정을 사용해서 쉽게 가입 할 수 있다.

Framework 설정하기 및 실행

아래의 화면이 가장 처음으로 나오는데, Skip this onboarding을 눌러 빈 프로젝트 화면으로 갈 수 있고,

I'm Ready를 눌러 프로젝트 설정을 도와주는 화면으로 갈 수 있다.

편하게 I'm Ready를 눌러서 진행하려고 한다

아래의 그림처럼, 원하는 플랫폼이 나오는데 간단하게 설정 할 수 있는 Flask로 실행 해보자

Simple Flask app launch && add flask Sentry SDK

  1. install virtualenv, launch virtualenv, install flask

     $ pip3 install virtualenv && virtualenv venv
    
     $ source venv/bin/activate
    
     $ (venv) pip3 install flask
  2. app.py

     from flask import Flask
     app = Flask(__name__)
    
     @app.route('/')
     def index():
         return 'Hello Flask'
  3. Sentry SDK 설정 추가

     from flask import Flask
     import sentry_sdk
     from sentry_sdk.integrations.flask import FlaskIntegration
    
     sentry_sdk.init(
         dsn="https://[sentry.io에서 정해 준 url]",
         integrations=[FlaskIntegration()]
     )
    
     app = Flask(__name__)
    
     @app.route('/')
     def index():
         return 'Hello Flask'
    
     @app.route('/make_error')
     def index():
             raise Exception("this is error!!")
         return "error..."
    
     @app.route('/debug-sentry')
     def trigger_error():
         division_by_zero = 1 / 0
  4. Flask 실행, 오류 확인하기!

$ (venv) python3 app.py # run python flask app

실행 된 서버의 주소가 만약 localhost:5000이라면,

  • localhost:5000/make_error
  • localhost:5000/debug-sentry

로 접속하면 에러로그를 Sentry에서 확인 할 수 있다