2016-11-16 6 views
1

저희 팀에서는 Sentry을 사용하여 오류를 추적하므로 루이지의 기본 제공 이메일 기능을 사용하여 모든보고를 한 곳에서 관리하는 것을 선호하지 않습니다.루이지 파이프 라인 오류를 Sentry로 라우트 할 수 있습니까?

이 나는 ​​그것이 현재 설정 한 방법이며, 그것은 보인다는 완전히 센트리를 건너 뛰는 수 :

if __name__ == '__main__': 
    try: 
     luigi.run() 
    except Exception as e: 
     client = Client(
      *** 
     ) 
     client.captureException(tags={ 
      sys.argv[0] 
     }) 
     logger.critical('Error occurred: {e}'.format(e=e)) 
     raise 

답변

2

나는 당신이 callback to the failure event을 선언하고 거기에 보초 추적 물건을 할 경우 가능해야한다고 생각 :

를 단지 파이썬 3+ as explained in this answer에서 작동 e.traceback 것을
import luigi 

@luigi.Task.event_handler(luigi.Event.FAILURE) 
def mourn_failure(task, exception): 
    client = Client(
     *** 
    ) 
    # we also include extra context for the current task 
    client.captureException(
     (type(e), e.message, e.traceback), 
     extra=dict(task=repr(task)) 
    ) 
    logger.critical('Error occurred: {e}'.format(e=exception)) 


if __name__ == '__main__': 
    luigi.run() 

주의 사항.