에러 감시에는 Sentry가 매우 편리!
피할 수 없는 애플리케이션의 오류 모니터링
어플리케이션을 운용하는데 있어서 에러 감시는 피해 통과할 수 없지요.
그럼에도 불구하고 오류 모니터링 도구와 서비스가 이제 많이 있기 때문에 어떤 것을 사용하면 좋은지 헤매는 곳이기도합니다.
저는 직장에서 센트리 을 사용하고 있습니다만, 지금까지 에러 감시를 할 수 없었던 처리에 센트리
이 기사에서는 python에서의 설치에 대해서만 쓰지만, 센트리이 대응하고 있는 언어라면 기본적으로 같은 방법으로 설정할 수 있게 되어 있다고 생각합니다.
Sentry 설정 방법
1. sentry-sdk 설치
sentry-sdk
를 pip로 설치합니다.
$ pip install --upgrade sentry-sdk
2. Sentry 설정
다음 코드는 프로그램 실행시 반드시 호출되는 어딘가에 설명합니다.
예를 들어 설정 파일을 다루는 패키지의 __init__.py
안에 쓰는 것이 좋을까 생각합니다.
import sentry_sdk
sentry_sdk.init('< DSNの値 >')
무려, 단지 이것만으로 에러 감시의 설정을 할 수 있습니다!
그리고는 에러가 일어날 것을 기다릴 뿐.
※오류가 나오지 않는 것이 제일 좋지만・・・
오류 알림 시도
오류 알림을 시도하기 위해 다음과 같은 프로그램을 실행해 봅니다.
sentry_test.pyimport logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ')
# 例外
raise Exception('this is exception.')
그러면 Sentry의 화면을 보면 다음과 같이 ERROR 레벨의 로그와 예외의 2개의 에러가 통지된 것을 알 수 있습니다.BREADCRUMBS
의 위치에 에러가 발생하기 전에 출력된 로그가 표시됩니다.
예외 알림의 경우 예외가 발생할 때까지 스택 추적도 함께 표시됩니다.
※ ERROR 로그의 경우에도 스택 트레이스를 표시할 수 있으므로, 나중에 방법을 쓰고 있습니다.
로거의 설정이 기본값이면 WARN 레벨 이상의 로그만 표시되지만, 설정을 바꾸면 DEBUG의 로그를 발행할 수도 있습니다.
정말 편리!
Sentry issue
ERROR 레벨 로그
예외
ERROR 레벨 로그에서도 스택 추적 표시
아래와 같이 logger.error()
의 인수에 exc_info=True
를 지정하면 ERROR 로그의 통지의 경우에서도 스택 트레이스가 sentry 로 표시되게 됩니다.
sentry_test.pyimport logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ', exc_info=True)
# 例外
raise Exception('this is exception.')
최고야!
요약
우선 sentry_sdk.init()
를 불러 두면 에러 통지를 사용할 수 있다고 하는 이 간편함이 진짜로 최고가 아닙니까? ? ?
에러 통지 이외에도 어쩐지 검지하고 싶은 이벤트의 통지나, sentry 상에서 보고 싶은 정보를 여러가지 덧붙일 수도 있습니다.
어쨌든 매우 편리합니다.
강하게 단점을 준다면, 센트리 로부터 보내 오는 에러 통지의 수에 상한이 설정되어 있어, 그 상한을 올리려면 과금이 필요할 정도.
하지만 여기까지의 퀄리티의 서비스라면 과금할만한 가치가 충분히 있다고 생각합니다.
자, 당신도 오늘부터 센트리 시작하자!
htps : // / cs. 센트리. 이오 / 에로 r 레포 r 친 g / 쿠이 cks rt /? p t t rm = py ton
Reference
이 문제에 관하여(에러 감시에는 Sentry가 매우 편리!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Chanmoro/items/a9cbde57fd6c0926b5b4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. sentry-sdk 설치
sentry-sdk
를 pip로 설치합니다.$ pip install --upgrade sentry-sdk
2. Sentry 설정
다음 코드는 프로그램 실행시 반드시 호출되는 어딘가에 설명합니다.
예를 들어 설정 파일을 다루는 패키지의
__init__.py
안에 쓰는 것이 좋을까 생각합니다.import sentry_sdk
sentry_sdk.init('< DSNの値 >')
무려, 단지 이것만으로 에러 감시의 설정을 할 수 있습니다!
그리고는 에러가 일어날 것을 기다릴 뿐.
※오류가 나오지 않는 것이 제일 좋지만・・・
오류 알림 시도
오류 알림을 시도하기 위해 다음과 같은 프로그램을 실행해 봅니다.
sentry_test.pyimport logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ')
# 例外
raise Exception('this is exception.')
그러면 Sentry의 화면을 보면 다음과 같이 ERROR 레벨의 로그와 예외의 2개의 에러가 통지된 것을 알 수 있습니다.BREADCRUMBS
의 위치에 에러가 발생하기 전에 출력된 로그가 표시됩니다.
예외 알림의 경우 예외가 발생할 때까지 스택 추적도 함께 표시됩니다.
※ ERROR 로그의 경우에도 스택 트레이스를 표시할 수 있으므로, 나중에 방법을 쓰고 있습니다.
로거의 설정이 기본값이면 WARN 레벨 이상의 로그만 표시되지만, 설정을 바꾸면 DEBUG의 로그를 발행할 수도 있습니다.
정말 편리!
Sentry issue
ERROR 레벨 로그
예외
ERROR 레벨 로그에서도 스택 추적 표시
아래와 같이 logger.error()
의 인수에 exc_info=True
를 지정하면 ERROR 로그의 통지의 경우에서도 스택 트레이스가 sentry 로 표시되게 됩니다.
sentry_test.pyimport logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ', exc_info=True)
# 例外
raise Exception('this is exception.')
최고야!
요약
우선 sentry_sdk.init()
를 불러 두면 에러 통지를 사용할 수 있다고 하는 이 간편함이 진짜로 최고가 아닙니까? ? ?
에러 통지 이외에도 어쩐지 검지하고 싶은 이벤트의 통지나, sentry 상에서 보고 싶은 정보를 여러가지 덧붙일 수도 있습니다.
어쨌든 매우 편리합니다.
강하게 단점을 준다면, 센트리 로부터 보내 오는 에러 통지의 수에 상한이 설정되어 있어, 그 상한을 올리려면 과금이 필요할 정도.
하지만 여기까지의 퀄리티의 서비스라면 과금할만한 가치가 충분히 있다고 생각합니다.
자, 당신도 오늘부터 센트리 시작하자!
htps : // / cs. 센트리. 이오 / 에로 r 레포 r 친 g / 쿠이 cks rt /? p t t rm = py ton
Reference
이 문제에 관하여(에러 감시에는 Sentry가 매우 편리!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Chanmoro/items/a9cbde57fd6c0926b5b4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ')
# 例外
raise Exception('this is exception.')
아래와 같이
logger.error()
의 인수에 exc_info=True
를 지정하면 ERROR 로그의 통지의 경우에서도 스택 트레이스가 sentry 로 표시되게 됩니다.sentry_test.py
import logging
import sentry_sdk
# sentry sdk 初期化
sentry_sdk.init('< DSNの値 >')
# ログを出力
logging.debug('DEBUG レベルのログ')
logging.info('INFO レベルのログ')
logging.warning('WARN レベルのログ')
logging.error('ERROR レベルのログ', exc_info=True)
# 例外
raise Exception('this is exception.')
최고야!
요약
우선 sentry_sdk.init()
를 불러 두면 에러 통지를 사용할 수 있다고 하는 이 간편함이 진짜로 최고가 아닙니까? ? ?
에러 통지 이외에도 어쩐지 검지하고 싶은 이벤트의 통지나, sentry 상에서 보고 싶은 정보를 여러가지 덧붙일 수도 있습니다.
어쨌든 매우 편리합니다.
강하게 단점을 준다면, 센트리 로부터 보내 오는 에러 통지의 수에 상한이 설정되어 있어, 그 상한을 올리려면 과금이 필요할 정도.
하지만 여기까지의 퀄리티의 서비스라면 과금할만한 가치가 충분히 있다고 생각합니다.
자, 당신도 오늘부터 센트리 시작하자!
htps : // / cs. 센트리. 이오 / 에로 r 레포 r 친 g / 쿠이 cks rt /? p t t rm = py ton
Reference
이 문제에 관하여(에러 감시에는 Sentry가 매우 편리!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Chanmoro/items/a9cbde57fd6c0926b5b4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(에러 감시에는 Sentry가 매우 편리!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Chanmoro/items/a9cbde57fd6c0926b5b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)