#!/usr/bin/env ruby

LKP_SRC = ENV['LKP_SRC'] || File.dirname(File.dirname(File.realpath($PROGRAM_NAME)))

require "#{LKP_SRC}/lib/string_ext"

while (line = $stdin.gets)
  line = line.resolve_invalid_bytes
  case line
  # Throughput:
  #      read:  IOPS=3211265.07 50176.02 MiB/s (52613.37 MB/s)
  #      write: IOPS=0.00 0.00 MiB/s (0.00 MB/s)
  #      fsync: IOPS=0.00
  when /read:  IOPS=([\d.]+) ([\d.]+) MiB\/s \(([\d.]+) MB\/s\)/
    puts "read_operations/s: #{$1}"
    puts "read_bytes_MiB/s: #{$2}"
    puts "read_bytes_MB/s: #{$3}"
  when /write: IOPS=([\d.]+) ([\d.]+) MiB\/s \(([\d.]+) MB\/s\)/
    puts "write_operations/s: #{$1}"
    puts "write_bytes_MiB/s: #{$2}"
    puts "write_bytes_MB/s: #{$3}"
  when /fsync: IOPS=([\d.]+)/
    puts "fsync_operations/s: #{$1}"
  # Latency (ms):
  #      min:                                  0.00
  #      avg:                                  0.65
  #      max:                                367.57
  #      95th percentile:                      0.86
  #      sum:                            1194054.52
  when /max:\s+([\d.]+)/
    puts "latency_max_ms: #{$1}"
  when /min:\s+([\d.]+)/
    puts "latency_min_ms: #{$1}"
  when /avg:\s+([\d.]+)/
    puts "latency_avg_ms: #{$1}"
  when /95th percentile:\s+([\d.]+)/
    puts "latency_95th_ms: #{$1}"
  when /sum:\s+([\d.]+)/
    puts "latency_sum_ms: #{$1}"
  end
end
