Я написал собственный плагин python для collectd:
import collectd
import random
def read_callback():
value = random.randint(0, 1500)
val = collectd.Values()
val.plugin = 'test'
val.plugin_instance = 'random'
val.type = 'counter'
val.type_instance = 'random'
val.values = [value]
val.dispatch()
collectd.register_read(read_callback)
Поэтому я ожидал увидеть значения от 0 до 1500 в графите, но получил следующий список чисел с плавающей запятой со значением намного больше 1500:
У меня нет проблем с базовыми плагинами и их метриками, но тут очень странное поведение. Кто-нибудь знает, почему и как я могу это исправить?
Проблема была во флаге collectd-graphite StoreRates
он был установлен в True, поэтому collectd отправить значение diff из предыдущего, и если новое значение было меньше предыдущего, у меня было странное поведение.
Как исправить ту же проблему: установите для StoreRates значение false.