Я пытаюсь изменить вывод подкоманды для плагина CLI, но изо всех сил пытаюсь заставить его работать правильно. В настоящее время он показывает ужасный печатный список; Я хочу отформатировать его в хорошую таблицу, которую легче читать. Без стола все работает нормально ... выглядит просто некрасиво. Добавление в таблицу разбивает его, говоря «.... используется как значение».
Я попытался объявить строку как строковый массив без удачи. Я что-то упустил и не уверен, что.
for {
select {
case <-ticker.C:
stats, _ := ccclient.AppStats(app.Metadata.GUID)
table := ui.Table([]string{"Sample Time", "Instance ID", "CPU %", "Memory (MB)", "Disk (MB)", "Cell IP:port"})
for key, value := range stats {
tickerObject := []string{time.Now().Format(time.RFC3339), key}
//ui.Say(fmt.Sprintf("%s, %s, %s, %s, %s, %s", time.Now().Format(time.RFC3339), key, fmt.Sprintf("%f", value.Stats.Usage.CPU), fmt.Sprintf("%f", (value.Stats.Usage.Mem/1024/1024)), fmt.Sprintf("%f", (value.Stats.Usage.Disk/1024/1024)), value.Stats.Host+":"+strconv.Itoa(value.Stats.Port)))}
table.Add(tickerObject)
table.Print()
}
case <-quit:
ticker.Stop()
}
}
Я ожидаю отформатированный вывод, который выглядит чище, вместо этого я получаю -
cannot use tickerObject (type []string) as type string in argument to table.Add
Токовый выход (используя закомментированную строку ui.Say), не совпадает:
Сбор статистики по задачам приложений в космосе. Функции Dev Testing
Ctrl-C, чтобы остановить сбор статистики
Время выборки, номер экземпляра,% процессора, память (МБ), диск (МБ), ip: порт ячейки
2019-06-14T23: 33: 42-05: 00, 0, 0,004659, 38,492188, 205,914062,
169.61.179.187:61440 2019-06-14T23: 33: 47-05: 00, 0, 0.004659, 38.492188, 205.914062, 169.61.179.187:61440 2019-06-14T23: 33: 52-05: 00, 0, 0.004659, 38,492188, 205,914062, 169,61,179,187:61440
2019-06-14T23: 33: 57-05: 00, 0, 0,006533, 38,492188, 205,914062,
169.61.179.187:61440
Я не думаю, проблема в таблице, я думаю, что мне просто не хватает чего-то смехотворно простого в том, как хранятся данные. Я думаю, что таблица может только отображать строку (или, по крайней мере, все примеры, которые я нашел в нашей внутренней документации, только строки вызова).