A. 그냥 사용하면 작동하지 않는다. 주피터 노트북 매직 명령어로 등록하면 사용할 수 있다.
sentry 에러 모니터링 툴 사용법을 보고 프로젝트까지 모두 만들자.
예제 코드 실행 시 오류 모니터링 실패
예제 코드 그대로 주피터 노트북에서 실행해보자.
센트리 이슈에 에러가 추가되지 않는다.
매직 명령어 등록
매직 명령어 등록이 필요하다.
jupyter notebook 파일이 있는 곳에 아래 코드로 sentry_magic.py 란 파일에 만들자. sentry_dns 에는 당연히 자신의 Project 것을 입력해야 한다.
from IPython.core.magic import register_cell_magic
import sentry_sdk
sentry_dns = "https://61542d0d57009686c7a15a52b2004c68@o4505808677109760.ingest.sentry.io/4505809807998976" # dns 입력할 것!
sentry_sdk.init(dsn=sentry_dns)
@register_cell_magic
def sentry_capture(line, cell):
try:
exec(cell)
except Exception as e:
sentry_sdk.capture_exception(e)
print(f"{e.__class__.__name__}: {e}")
주피터 노트북에서 아래 예처럼 %run 명령어를 활용하면 커스텀 매직 명령어를 등록할 수 있다.
%run ./sentry_magic.py
셀 단위로 에러를 캡쳐해야 하므로 %%sentry_capture라고 적어준다. %를 반드시 두 개 입력해야 셀 단위로 매직명령어가 실행된다.
실행 예
아래는 실행 예이다.
이번에는 아까와 다르게 issues에 등록된 것을 볼 수 있다.
세부 내용을 눌러보면 cell의 내용이 나타나고 e도 보인다. line은 아쉽게 sentry_magic.py 파일의 라인이 나타난다.
그래도 셀 내용 전체가 기록되므로 어떤 셀에서 오류가 발생했는지는 쉽게 찾을 수 있다.
활용법
장시간 돌아가거나 자주 에러가 발생하는 셀에만 매직 명령어를 사용할 수 있다. 주피터 노트북 실행 화면을 계속 보지 않고도 메일로 오류를 모니터링할 수 있다. 메일이 불편하다면 센트리와 슬랙을 연결해서 에러 발생 시 슬랙 메시지가 자동 작성되도록 하면 된다.
반응형