Плагин Collectd сообщает монго абсолютное значение вместо дельты, для RRD типа "Counter" - PullRequest
0 голосов
/ 28 февраля 2012

Итак, я пишу плагин для чтения, openvz_guest_bandwidth , для Collectd , где я читаю, сколько пропускной способности Openvz делают гости, используя libiptc чтобы узнать, сколько внешней полосы пропускания делает каждый гость.

Затем я сообщаю эту информацию плагину write_mongodb , который я написал (что может быть связано с поломкой)

Проблема в том, что я вижу записи в монго, как,

{ "_id" : ObjectId("4f480c15573fa191fa838140"), "ts" : ISODate("2012-02-24T22:15:33Z"), "h" : "62f34634-0fac-4b5f-a7a5-45532ef6dd3b", "i" : "rx", "t" : "counter", "ti" : "", "value" : NumberLong("3970318241") }
{ "_id" : ObjectId("4f480c15573fa191fa838141"), "ts" : ISODate("2012-02-24T22:15:34Z"), "h" : "62f34634-0fac-4b5f-a7a5-45532ef6dd3b", "i" : "tx", "t" : "counter", "ti" : "", "value" : NumberLong(50070094) }
{ "_id" : ObjectId("4f480c15573fa191fa838142"), "ts" : ISODate("2012-02-24T22:15:34Z"), "h" : "62f34634-0fac-4b5f-a7a5-45532ef6dd3b", "i" : "rx", "t" : "counter", "ti" : "", "value" : NumberLong("3970322447") }
{ "_id" : ObjectId("4f480c15573fa191fa838143"), "ts" : ISODate("2012-02-24T22:15:35Z"), "h" : "62f34634-0fac-4b5f-a7a5-45532ef6dd3b", "i" : "tx", "t" : "counter", "ti" : "", "value" : NumberLong(50070094) }
{ "_id" : ObjectId("4f480c15573fa191fa838144"), "ts" : ISODate("2012-02-24T22:15:35Z"), "h" : "62f34634-0fac-4b5f-a7a5-45532ef6dd3b", "i" : "rx", "t" : "counter", "ti" : "", "value" : NumberLong("3970325247") }

Где интересные значения в конце. Я ожидаю, что сообщенные значения будут разницей между последовательными записями, а не показаниями счетчика.

Это аналог счетчика СЧЕТЧИК RRD вместо АБСОЛЮТНОГО, как я понимаю.

Я довольно застрял в этом и не уверен, где может лежать ошибка, и даже более того, как ее исправить. Ошибка может быть либо в чтении, либо в письме.

В качестве примечания, прежде чем значения достигнут write_mongodb, они отправляются через сетевой плагин collectd.

Более того, я, кажется, запутался между value_list.plugin и value_list.plugin_instance. Другие плагины, похоже, используют типы, которые дают действительно бесполезное поле, такое как "t: 'memory'" внутри коллекции памяти.

1 Ответ

1 голос
/ 29 февраля 2012

Octo, сопровождающий collectd указал, что плагин write_mongodb не использовал определенный вызов функции и проверку конфигурации, чтобы посмотреть, следует ли писать дельты.

Коммит можно найти здесь https://github.com/collectd/collectd/pull/38

...