인공지능 AI

Q. 주피터 노트북Jupyter Notebook에서도 sentry를 쓸 수 있을까?

Tap to restart 2023. 9. 2. 18:00
반응형

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 파일의 라인이 나타난다. 

그래도 셀 내용 전체가 기록되므로 어떤 셀에서 오류가 발생했는지는 쉽게 찾을 수 있다.

활용법

장시간 돌아가거나 자주 에러가 발생하는 셀에만 매직 명령어를 사용할 수 있다. 주피터 노트북 실행 화면을 계속 보지 않고도 메일로 오류를 모니터링할 수 있다. 메일이 불편하다면 센트리와 슬랙을 연결해서 에러 발생 시 슬랙 메시지가 자동 작성되도록 하면 된다.

 

반응형