rds_tail_logs.py 文件源码

python
阅读 40 收藏 0 点赞 0 评论 0

项目:rds_tail 作者: Jagatveer 项目源码 文件源码
def main():
  parser = argparse.ArgumentParser(description='Stream logs from rds for a set of db instances.')
  parser.add_argument('--db_instance_ids', '-d', nargs='+', type=str, required=True,
                      help='list of db instance ids')
  parser.add_argument('--minutes_in_the_past_to_start', '-m', type=int, default=0,
                      help=('if logs have not been written to since this many minutes ago, '
                            'ignore them'))
  parser.add_argument('--api_call_delay_seconds', '-a', type=float, default=1.0,
                      help='time to wait before each API call')
  parser.add_argument('--log_state_file', '-s', type=str, default='log_state.json',
                      help='file path for recording the state of log streaming')
  parser.add_argument('--retention_days', '-r', type=int, default=7,
                      help='number of days to retain log metadata')
  parser.add_argument('--log_level', '-l', type=str, default='INFO',
                      choices=['DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL'],
                      help="log level for this script's logs")
  parser.add_argument('--log_filename', '-f', type=str, default='rds_tail_logs.log',
                      help="log filename for this script's logs")
  parser.add_argument('--run_once', '-o', dest='run_once', action='store_true',
                      help="stream all new logs from all db instances and then exit")
  parser.add_argument('--output_format', '-t', choices=['json', 'text'], default='json',
                      help="output format")
  parser.add_argument('--aws_region_name', type=str, help="AWS region name")
  parser.add_argument('--aws_profile_name', default='default', help='AWS credentials profile name')
  args = parser.parse_args()

  os.environ['TZ'] = 'UTC'
  time.tzset()
  logging.basicConfig(filename=args.log_filename, level=logging._levelNames[args.log_level],
                      format='%(asctime)s %(message)s')
  logging.info('Starting rds log streaming with args: %s', args)

  rds = RDS(args.api_call_delay_seconds, args.aws_region_name, args.aws_profile_name)

  rds_tail_logs = LogTail(args.log_state_file, args.db_instance_ids,
                                    args.minutes_in_the_past_to_start, rds,
                                    args.retention_days, args.run_once, args.output_format)
  rds_tail_logs.stream()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号