def parse_line_for_formatting()

in cosmos/scripts/converting_log_to_csv.py [0:0]


def parse_line_for_formatting(line, writer):
    # 2022-04-13 16:16:13:684 10 sec: 15743 operations; 1574.14 current ops/sec; est completion in 52 minutes READ:
    # Count=14959, Max=613887, Min=1110, Avg=12876.19, 90=25807, 99=78143, 99.9=493311, 99.99=609279]
    split_semicolon = line.split(';')

    # '2022-04-13 16:16:13:684 10 sec: 15743 operations'
    first_part = split_semicolon[0]
    first_part_split = first_part.split(' ')
    date = first_part_split[0]
    time = first_part_split[1].rsplit(':', 1)[0]

    # 1574.14 current ops/sec
    second_part = split_semicolon[1].strip()
    rps = second_part.rsplit('current ops/sec', 1)[0]

    # est completion in 52 minutes READ: Count=14959, Max=613887, Min=1110, Avg=12876.19, 90=25807, 99=78143,
    # 99.9=493311, 99.99=609279]
    third_part = split_semicolon[2].strip()
    if 'CLEANUP' in third_part:
        return
    operation = ''
    count = ''
    max_in_micro_sec = ''
    min_in_micro_sec = ''
    avg_in_micro_sec = ''
    p9999_in_micro_sec = ''
    p999_in_micro_sec = ''
    p99_in_micro_sec = ''
    p90_in_micro_sec = ''
    for metrics in third_part.split(' '):
        metrics = metrics.strip()
        metrics = metrics.replace(']', '')
        metrics = metrics.replace(',', '')

        if ':' in metrics:
            operation = metrics.replace(':', '')
        elif 'Count=' in metrics:
            count = metrics.replace('Count=', '')
        elif 'Max=' in metrics:
            max_in_micro_sec = metrics.replace('Max=', '')
        elif 'Min=' in metrics:
            min_in_micro_sec = metrics.replace('Min=', '')
        elif 'Avg=' in metrics:
            avg_in_micro_sec = metrics.replace('Avg=', '')
        elif '99.99=' in metrics:
            p9999_in_micro_sec = metrics.replace('99.99=', '')
        elif '99.9=' in metrics:
            p999_in_micro_sec = metrics.replace('99.9=', '')
        elif '99=' in metrics:
            p99_in_micro_sec = metrics.replace('99=', '')
        elif '90=' in metrics:
            p90_in_micro_sec = metrics.replace('90=', '')

    row_in_csv = [date, time, operation, rps, count, max_in_micro_sec, min_in_micro_sec, avg_in_micro_sec,
                  p90_in_micro_sec, p99_in_micro_sec, p999_in_micro_sec, p9999_in_micro_sec]
    writer.writerow(row_in_csv)