diff --git a/ceph-gobench.go b/ceph-gobench.go index f283bf3..769eaa6 100644 --- a/ceph-gobench.go +++ b/ceph-gobench.go @@ -71,23 +71,23 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf red := color.New(color.FgHiRed).SprintFunc() darkred := color.New(color.FgRed).SprintFunc() green := color.New(color.FgHiGreen).SprintFunc() - darkgreen := color.New(color.FgGreen).SprintFunc() + darkgreen := color.New(color.FgGreen).SprintFunc() //todo delete darkgreen buffer.WriteString(fmt.Sprintf("Bench result for %v\n", osddevice.Name)) infos := map[string]string{ - "front_addr": strings.Split(osddevice.Info.FrontAddr, "/")[0], + "front_addr": strings.Split(osddevice.Info.FrontAddr, "/")[0], "ceph_release/version": osddevice.Info.CephRelease + "/" + osddevice.Info.CephVersionShort, - "cpu": osddevice.Info.CPU, - "hostname": osddevice.Info.Hostname, + "cpu": osddevice.Info.CPU, + "hostname": osddevice.Info.Hostname, "default_device_class": osddevice.Info.DefaultDeviceClass, - "devices": osddevice.Info.Devices, - "distro_description": osddevice.Info.DistroDescription, - "journal_rotational": osddevice.Info.JournalRotational, - "rotational": osddevice.Info.Rotational, - "kernel_version": osddevice.Info.KernelVersion, - "mem_swap_kb": osddevice.Info.MemSwapKb, - "mem_total_kb": osddevice.Info.MemTotalKb, - "osd_data": osddevice.Info.OsdData, - "osd_objectstore": osddevice.Info.OsdObjectstore, + "devices": osddevice.Info.Devices, + "distro_description": osddevice.Info.DistroDescription, + "journal_rotational": osddevice.Info.JournalRotational, + "rotational": osddevice.Info.Rotational, + "kernel_version": osddevice.Info.KernelVersion, + "mem_swap_kb": osddevice.Info.MemSwapKb, + "mem_total_kb": osddevice.Info.MemTotalKb, + "osd_data": osddevice.Info.OsdData, + "osd_objectstore": osddevice.Info.OsdObjectstore, } var infokeys []string width := []int{0, 0, 0, 0, 0, 0} @@ -96,23 +96,23 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf } sort.Strings(infokeys) for n, key := range infokeys { - if width[n % 3] < len(key) { - width[n % 3] = len(key) + if width[n%3] < len(key) { + width[n%3] = len(key) } - if width[3 + n % 3] < len(infos[key]) { - width[3 + n % 3] = len(infos[key]) + if width[3+n%3] < len(infos[key]) { + width[3+n%3] = len(infos[key]) } } buffer.WriteString( darkgreen("osdname") + strings.Repeat(" ", width[2]-len("osdname")+2) + - red(osddevice.Name) + strings.Repeat(" ", width[5]-len(osddevice.Name)+2)) + red(osddevice.Name) + strings.Repeat(" ", width[5]-len(osddevice.Name)+2)) for infonum, key := range infokeys { if (infonum % 3) == 2 { buffer.WriteString("\n") } buffer.WriteString( - darkgreen(key) + strings.Repeat(" ", width[infonum % 3]-len(key)+2) + - yellow(infos[key]) + strings.Repeat(" ", width[3 + infonum % 3]-len(infos[key])+2)) + darkgreen(key) + strings.Repeat(" ", width[infonum%3]-len(key)+2) + + yellow(infos[key]) + strings.Repeat(" ", width[3+infonum%3]-len(infos[key])+2)) } buffer.WriteString("\n\n") @@ -120,7 +120,7 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf // iops = 1s / latency iops := 1000000 / latencytotal // avg speed = iops * block size / 1 MB - avgspeed := (1000000 / float64(latencytotal) * float64(params.blocksize) / 1024 / 1024) + avgspeed := 1000000 / float64(latencytotal) * float64(params.blocksize) / 1024 / 1024 avgline := fmt.Sprintf("Avg iops: %-5v Avg speed: %.3f MB/s\n\n", iops, avgspeed) switch { case iops < 80: @@ -232,7 +232,7 @@ func main() { } - if params.parallel == true { + if params.parallel == true { //todo make flag prepare, check objects go func() { wg.Wait() close(results) diff --git a/flags.go b/flags.go index 68ba6b2..217dedb 100644 --- a/flags.go +++ b/flags.go @@ -70,7 +70,7 @@ func Route() Params { log.Println("Can't convert defined block size. 4K block size will be used") params.objectsize = 4194304 } - if params.objectsize/params.blocksize < 2 { + if params.objectsize/params.blocksize < 2 { //todo not fatal error. warning about offsets log.Fatalf("Current block size: %v\nCurrent object size: %v\nObject size must be at least 2 times bigger than block size", params.blocksize, params.objectsize) } return params diff --git a/getosd.go b/getosd.go index 5f70fa3..2e36a6b 100644 --- a/getosd.go +++ b/getosd.go @@ -117,6 +117,7 @@ func GetOsdForLocations(params Params, osdcrushdump OsdCrushDump, osddump OsdDum osddevices := []Device{} bucketitems := GetCrushHostBuckets(osdcrushdump.Buckets, rootid) + //todo check osd up and in if params.define != "" { if strings.HasPrefix(params.define, "osd.") { for _, hostbucket := range bucketitems { diff --git a/types.go b/types.go index 446ac8d..552eed4 100644 --- a/types.go +++ b/types.go @@ -386,3 +386,5 @@ type OsdMap struct { Up []int64 `json:"up"` UpPrimary int64 `json:"up_primary"` } + +//todo check types (int64 -> uint64)