FastAPI에서 Stream 쓸 때 Sentry 오류 제대로 받기
2024. 11. 25. 12:13ㆍ개발/Python
FastAPI 프로젝트 중에 StreamResponse을 쓰는 프로젝트가 하나 있습니다.
그런데 Sentry를 설치하고 에러를 보던 중에 모든 에러가 unhandled errors in a TaskGroup로 뜨고 있었습니다.
그런데 막상 들어가서 보면 또 에러 내용이 전부 다릅니다.
1차적으로 Stream에서 발생하는 에러의 최상위가 TaskGroup이기 때문에 Sentry에는 TaskGroup이 적혀 있었고,
Exception의 경우는 그 하위에 관련된 에러로 표시되고 있었습니다.
해결방법
FastAPI의 Stream은 AnyIO를 사용하고 있습니다.
https://fastapi.tiangolo.com/async/#write-your-own-async-code
그리고 Sentry에는 asyncio에 대한 Integration을 지원하고 있습니다.
https://docs.sentry.io/platforms/python/integrations/asyncio/
이제 sentry init에 integration 코드만 작성해주면 됩니다.
sentry_sdk.init(
dsn=settings.sentry_dsn,
integrations=[
AsyncioIntegration(),
],
traces_sample_rate=1.0,
)
이제 다시 테스트를 하면 에러를 잘 받을 수 있습니다.
아래는 같은 에러에 대해 integration 적용 이후 어떻게 달라지는지 보여주는 스샷입니다.
'개발 > Python' 카테고리의 다른 글
django, virtualenv error (0) | 2018.08.10 |
---|---|
Python, jpype에서 startJVM이 안될때 (0) | 2017.02.23 |
Python, 파이썬을 이용해서 슬랙 봇 만들기 (0) | 2017.01.13 |