我实际上正在使用Collectd和Influxdb来绘制Grafana中的图形数据。
我在python中获得的数据保存在.csv文件中,所以我在collectd中使用tail_csv插件从这个.csv文件中获取数据。
一切都很好,数据被发送到Influxdb,但我想区分不同设备的数据。
例如,我得到了这个:
Data from device 1 in csv format: 0,0,0,0,0
0,0,0,0,0
Data from device 2 in csv format: 0,0,0,0,0
0,0,0,0,0
In the final csv file will be next: 0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
Collectd没有字符串类型,所以我无法添加字符串列来了解数据的来源。我该如何解决?
我可能的解决方案:不使用字符串列,而是使用int列,并将每个int与设备关联,但可能的设备是动态的,所以我不喜欢它。 我还考虑为每个设备编写一个tail_csv插件代码,因此当检测到新设备时,将编写一个新的插件代码来读取每个设备的新.csv文件,但它非常重。
请指教!
答案 0 :(得分:0)
Collectd支持以下格式的数据路径:
host/plugin-instance/type-instance
为简单起见:
a/b-c/TYPE-d
或
a/b/TYPE-c
所以你可以自由选择a,b,c和d。
根据提供的信息,我不确定您的路径是什么样的。您可以在最后一个示例中使用“b”来表示设备名称。
或者将条目命名为a / b / TYPE-_whatever_DEVICE_NUM,并使用Graphite的aliasSub()中的一个来挑选设备并单独显示它们,如果这是你想要做的。