我试图实现我自己的collectd python插件,它可以将数据存储到influxdb中。
我遵循了这个网站的教程:https ://blog.dbrgn.ch/2017/3/10/write-a-collectd-python-plugin/
以及其他教程。以下是来自上述站点的示例代码。
PATH = '/sys/class/thermal/thermal_zone0/temp'
def config_func(config):
path_set = False
for node in config.children:
key = node.key.lower()
val = node.values[0]
if key == 'path':
global PATH
PATH = val
path_set = True
else: collectd.info('cpu_temp plugin: Unknown config key "%s"' % key)
if path_set:
collectd.info('cpu_temp plugin: Using overridden path %s' % PATH)
else: collectd.info('cpu_temp plugin: Using default path %s' % PATH)
def read_func():
# Read raw value
with open(PATH, 'rb') as f:
temp = f.read().strip()
# Convert to degrees celsius
deg = float(int(temp)) / 1000
# Dispatch value to collectd
val = collectd.Values(type='temperature')
val.plugin = 'cpu_temp'
val.dispatch(values=[deg])
collectd.register_config(config_func)
collectd.register_read(read_func)
我试过了,它将数据存储在 influxdb 中,但是如何添加或修改列名(或者它应该是 influxdb 的字段和标签)?
成功运行示例代码后,看到influxdb中的列名分别为time、host、type、type_instance和value。但是,我很困惑这些列名在哪里设置?
在 /etc/collectd.conf 或脚本中,没有关于这些列名的设置。如果我想添加一个新列或将列名(例如“type”)修改为另一个名称(例如“resource”)怎么办?
是否可以添加更多列或修改这些列?我在哪里可以找到这些名称的命名方式?
谢谢~