func GetMetricWithSize()

in nimo-shake/common/metric.go [338:375]


func GetMetricWithSize(input interface{}) string {
	var val float64
	switch v := input.(type) {
	case uint64:
		val = float64(v)
	case uint32:
		val = float64(v)
	case uint16:
		val = float64(v)
	case uint:
		val = float64(v)
	case int64:
		val = float64(v)
	case int32:
		val = float64(v)
	case int16:
		val = float64(v)
	case int:
		val = float64(v)
	default:
		return "unknown type"
	}

	switch {
	case val > PB:
		return fmt.Sprintf("%.2fPB", val/PB)
	case val > TB:
		return fmt.Sprintf("%.2fTB", val/TB)
	case val > GB:
		return fmt.Sprintf("%.2fGB", val/GB)
	case val > MB:
		return fmt.Sprintf("%.2fMB", val/MB)
	case val > KB:
		return fmt.Sprintf("%.2fKB", val/KB)
	default:
		return fmt.Sprintf("%.2fB", val)
	}
}