コード例 #1
0
def _main():
    datadog.initialize(api_key=get_environment_value('DATADOG_API_KEY'),
                       app_key=get_environment_value('DATADOG_APP_KEY'))

    with contextlib.closing(asyncio.get_event_loop()) as loop:
        _schedule_backup(loop)
        try:
            loop.run_forever()
        except KeyboardInterrupt:
            _logger.info('Interrupted')
            sys.exit(0)
コード例 #2
0
def _main():
    datadog.initialize(
        api_key=get_environment_value('DATADOG_API_KEY'),
        app_key=get_environment_value('DATADOG_APP_KEY')
    )

    with contextlib.closing(asyncio.get_event_loop()) as loop:
        _schedule_backup(loop)
        try:
            loop.run_forever()
        except KeyboardInterrupt:
            _logger.info('Interrupted')
            sys.exit(0)
コード例 #3
0
def _backup(loop):
    """Perform actual backup."""
    def post_datadog_event(title, text, alert_type):
        datadog.api.Event.create(title=title, text=text, alert_type=alert_type)


    success = False
    error = None
    for attempt in range(1, 4):
        now = datetime.now()
        _logger.info('Backup attempt #{} at {}...'.format(
            attempt, now.strftime('%Y-%m-%d %H:%M:%S')))
        try:
            backup_rethinkdb(
                get_environment_value('RETHINKDB_HOST'),
                get_environment_value('RETHINKDB_BACKUP_S3_BUCKET'), True)
        except Exception as err:
            error = err
            import traceback
            traceback.print_exc()
            _logger.warn('Backup attempt #{} failed'.format(attempt))
            time.sleep(1)
        else:
            success = True
            break
    if success:
        _logger.info('Backed up successfully!')
        post_datadog_event(
            'RethinkDB Backup Success',
            'RethinkDB was successfully backed up', 'success')
    else:
        _logger.error('Failed to back up!')
        post_datadog_event(
            'RethinkDB Backup Failure',
            'Failed to back up RethinkDB: {}'.format(error), 'error')

    _logger.debug('Scheduling next backup')
    _schedule_backup(loop)
コード例 #4
0
def _backup(loop):
    """Perform actual backup."""
    def post_datadog_event(title, text, alert_type):
        datadog.api.Event.create(title=title, text=text, alert_type=alert_type)

    success = False
    error = None
    for attempt in range(1, 4):
        now = datetime.now()
        _logger.info('Backup attempt #{} at {}...'.format(
            attempt, now.strftime('%Y-%m-%d %H:%M:%S')))
        try:
            backup_rethinkdb(
                get_environment_value('RETHINKDB_HOST'),
                get_environment_value('RETHINKDB_BACKUP_S3_BUCKET'), True)
        except Exception as err:
            error = err
            import traceback
            traceback.print_exc()
            _logger.warn('Backup attempt #{} failed'.format(attempt))
            time.sleep(1)
        else:
            success = True
            break
    if success:
        _logger.info('Backed up successfully!')
        post_datadog_event('RethinkDB Backup Success',
                           'RethinkDB was successfully backed up', 'success')
    else:
        _logger.error('Failed to back up!')
        post_datadog_event('RethinkDB Backup Failure',
                           'Failed to back up RethinkDB: {}'.format(error),
                           'error')

    _logger.debug('Scheduling next backup')
    _schedule_backup(loop)