Open Ezhvtumane opened 5 years ago
не понял пожалуйста, приложите полный текст ошибки
К сожалению, сейчас нет возможности запустить тест и полностью привести текст ошибки. В целом там проблема в том, что может прийти не числовая метрика, а стринга. Тогда весь тест валится. Например имя хоста или любая другая метрика теста которая не int.
В своем проекте я пофиксил следующим образом: добавил дополнительную проверку:
elif isinstance(value, basestring) or isinstance(self.data[host][metric], basestring): self.sign[host][metric] = 0 self.data[host][metric] = value
for metric, value in data.iteritems():
if value == '':
self.sign[host][metric] = -1
self.data[host][metric] = value
elif isinstance(value, basestring) or isinstance(self.data[host][metric], basestring):
self.sign[host][metric] = 0
self.data[host][metric] = value
else:
if not self.data[host].get(metric, None):
self.sign[host][metric] = 1
elif float(value) > float(self.data[host][metric]):
self.sign[host][metric] = 1
elif float(value) < float(self.data[host][metric]):
self.sign[host][metric] = -1
else:
self.sign[host][metric] = 0
self.data[host][metric] = "%.2f" % float(value)
When I using [[inputs.postgres]] I receive this error, because this plugin has string metrics.
https://github.com/yandex/yandex-tank/blob/develop/yandextank/plugins/Telegraf/plugin.py#L299 This type conversion throw exception.
Please, check type before cast. Thanks. Hope it's be fixed.