Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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
Exemple #5
0
    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
Exemple #6
0
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")