trbs/bucky

types.db parsing

Closed this issue · 1 comments

If a type is specified without using the (optional) comma as follows:

rabbitmq_details avg:GAUGE:0:U avg_rate:GAUGE:0:U rate:GAUGE:0:U samples:GAUGE:0:U

Bucky fails to start complaining of to many values to unpack.

This line works fine

rabbitmq_details avg:GAUGE:0:U, avg_rate:GAUGE:0:U, rate:GAUGE:0:U, samples:GAUGE:0:U

As the commas are optional, perhaps this could be addressed.

https://collectd.org/documentation/manpages/types.db.5.shtml

delimited by spaces and, optionally, a comma (",")

I should have mentioned that this refers to a types.db file being specified on the command line.

Here's the exact error:

Traceback (most recent call last):
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/bin/bucky", line 11, in <module>
May 09 09:54:01 mail.madswan.co circusd[30425]: sys.exit(main())
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/main.py", line 238, in main
May 09 09:54:01 mail.madswan.co circusd[30425]: bucky = Bucky(cfg)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/main.py", line 256, in __init__
May 09 09:54:01 mail.madswan.co circusd[30425]: self.servers.append(stype(self.sampleq, cfg))
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 651, in getCollectDServer
May 09 09:54:01 mail.madswan.co circusd[30425]: return server(queue, cfg)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 554, in __init__
May 09 09:54:01 mail.madswan.co circusd[30425]: self.handler = CollectDHandler(cfg)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 437, in __init__
May 09 09:54:01 mail.madswan.co circusd[30425]: cfg.collectd_counter_eq_derive)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 151, in __init__
May 09 09:54:01 mail.madswan.co circusd[30425]: self.types = CollectDTypes(types_dbs=types_dbs)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 108, in __init__
May 09 09:54:01 mail.madswan.co circusd[30425]: self._load_types()
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 124, in _load_types
May 09 09:54:01 mail.madswan.co circusd[30425]: self._add_type_line(line)
May 09 09:54:01 mail.madswan.co circusd[30425]: File "/home/ubuntu/venvs/bucky/lib/python2.7/site-packages/bucky/collectd.py", line 139, in _add_type_line
May 09 09:54:01 mail.madswan.co circusd[30425]: vname, vtype, minv, maxv = val.strip().split(":")
May 09 09:54:01 mail.madswan.co circusd[30425]: ValueError: too many values to unpack