InfluxDB: ошибка синтаксического анализа: неверный сервис данных =collectd

У нас есть тестовая среда с Collectd и InfluxDB на одной машине. Все работает нормально, пока мы не добавим плагин Python Collectd. Когда плагин Python отправляет значения, мы получаем следующий журнал ошибок от InfluxDB:

Jan 26 10:00:24 influxdb influxd: [I] 2017-01-26T09:00:24Z Collectd parse error: invalid data service=collect

Наша установка: собрал 5.6 InfluxDB 1.2.

Собранный конфиг плагина Python:

<LoadPlugin python>
  Globals true
</LoadPlugin>

<Plugin python>
  ModulePath "/opt/python-collectd"
  LogTraces true
  Interactive false
  Import "randomtest"
</Plugin>

Собранный сетевой конфиг:

LoadPlugin network

<Plugin network>
        Server "localhost" "25826"
</Plugin>

Источник "Randomtest"

import collectd
import random    

def configer(confObj):
    collectd.info('config called')

def init_fun():
    collectd.info('init called')

def reader(input_data=None):
        value = collectd.Values()
        value.plugin = 'test_plugin'
        value.host = 'test-host'
        value.interval = 10
        value.type = 'absolute'
        value.type_instance = 'test'
        value.values = [random.randint(0,10)]
        value.dispatch()    

collectd.register_config(configer)
collectd.register_init(init_fun)
collectd.register_read(reader)

InfluxDB collectd config:

 [[collectd]]
   enabled = true
   bind-address = ":25826"
   database = "collectd"
   retention-policy = ""
   typesdb = "/usr/share/collectd/types.db"

  # These next lines control how batching works. You should have this enabled
  # otherwise you could get dropped metrics or poor performance. Batching
  # will buffer points in memory if you have many coming in.

  # Flush if this many points get buffered
   batch-size = 5000

  # Number of batches that may be pending in memory
   batch-pending = 10

  # Flush at least this often even if we haven't hit buffer limit
   batch-timeout = "10s"

  # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
   read-buffer = 0

Просто чтобы уточнить: Если я прокомментирую Импортировать "randomtest" в конфигурации Python Collectd, все снова будет работать нормально. Мы также рассмотрели tcpdumps, но не заметили разницы между плагинами Python Collectd и другими плагинами Collectd.

1 ответ

У меня похожая проблема, и я открыл проблему на GitHub, но с плагинами curl_xml и snmp.

https://github.com/influxdata/influxdb/issues/8184

Понижение версии InfluxDB до версии 1.1.1, по-видимому, восстанавливает функциональность.

Другие вопросы по тегам