class SentryReporter(object): def __init__(self, sentry_dsn, **unused): if Client is None: raise RavenNotAvailable('Raven is not installed, maybe run "pip install raven"') self.client = Client(sentry_dsn) def report(self, traceback): environ = traceback.context.get('environ', {}) data = { 'sentry.interfaces.Http': { 'method': environ.get('REQUEST_METHOD'), 'url': get_current_url(environ, strip_querystring=True), 'query_string': environ.get('QUERY_STRING'), # TODO # 'data': environ.get('wsgi.input'), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } is_backlash_event = getattr(traceback.exc_value, 'backlash_event', False) if is_backlash_event: # Just a Stack Dump request from backlash self.client.captureMessage(traceback.exception, data=data, stack=traceback.frames) else: # This is a real crash self.client.captureException(exc_info=traceback.exc_info, data=data)
class SentryReporter(object): def __init__(self, sentry_dsn, **unused): if Client is None: raise RavenNotAvailable('Raven is not installed, maybe run "pip install raven"') self.client = Client(sentry_dsn) def report(self, traceback): environ = traceback.context.get('environ', {}) data = { 'sentry.interfaces.Http': { 'method': environ.get('REQUEST_METHOD'), 'url': get_current_url(environ, strip_querystring=True), 'query_string': environ.get('QUERY_STRING'), # TODO # 'data': environ.get('wsgi.input'), 'headers': dict(get_headers(environ)), 'env': dict(get_environ(environ)), } } is_backlash_event = getattr(traceback.exc_value, 'backlash_event', False) if is_backlash_event: # Just a Stack Dump request from backlash self.client.captureMessage(traceback.exception, data=data, stack=traceback.frames) else: # This is a real crash self.client.captureException(data=data)
def process_prices(): try: prices = fetch_prices() prices_str = json.dumps(prices, indent=4, sort_keys=True) print prices_str mail = EmailAPI() mail.send_email(text=prices_str, subject='Player Prices') sms = SmptpApi() sms.send_text(prices_str) except Exception: sentry_client = SentryClient() sentry_client.captureException()
def run(self): in_heroku = 'SENTRY_DSN' in os.environ if in_heroku: client = Client(dsn=os.environ['SENTRY_DSN']) while True: try: logger.info("Worker awaiting data from %s" % self.queue) message = self.get_next_message() logger.info("Worker received a message %s from %s" % (message[0], self.queue)) depickled = pickle.loads(message[1]) logger.info("Depickled data: %s" % depickled) self.send_to_workers(depickled) except Exception: if in_heroku: client.captureException() raise
def run(self): in_heroku = 'SENTRY_DSN' in os.environ if in_heroku: client = Client(dsn=os.environ['SENTRY_DSN']) while True: try: logger.info("Worker awaiting data from %s" % self.queue) message = self.get_next_message() logger.info("Worker received a message %s from %s" % (message[0], self.queue)) depickled = pickle.loads(message[1]) logger.info("Depickled data: %s" % depickled) self.send_to_workers(depickled) except Exception: if in_heroku: client.captureException() raise
def destalinate_job(): raven_client = RavenClient() logging.info("Destalinating") if not get_config().sb_token or not get_config().api_token: logging.error( "Missing at least one required Slack environment variable.\n" "Make sure to set DESTALINATOR_SB_TOKEN and DESTALINATOR_API_TOKEN." ) else: try: archiver.Archiver().archive() warner.Warner().warn() announcer.Announcer().announce() flagger.Flagger().flag() logging.info("OK: destalinated") except Exception as e: # pylint: disable=W0703 raven_client.captureException() if not get_config().sentry_dsn: raise e logging.info("END: destalinate_job")