我在perl中编写自定义collecd插件。 让我们说它用于网络监控“netmonit”。 所以我发送的数据是这样的:
server-group.server.netmonit.net1_counter1
server-group.server.netmonit.net1_counter2
server-group.server.netmonit.net2_counter1
server-group.server.netmonit.net2_counter2
我的问题是我是否可以将数据发送到子目录:
server-group.server.netmonit.net1.counter1
server-group.server.netmonit.net1.counter2
server-group.server.netmonit.net2.counter1
server-group.server.netmonit.net2.counter2
use Collectd qw( :all )
...
...
sub read_data_netmonit {
my $va = { type => 'absolute', plugin => netmonit };
my $data = get_data();
for my $metric (@metrics) {
$va->{'values'} = [ $data->{$metric} ];
$va->{'type_instance'} = "$metric";
plugin_dispatch_values($va);
}
return 1;
}
答案 0 :(得分:0)
在collectd中没有“向目录发送数据”之类的东西。 Collectd只是收集数字并为它们分配一个使用5个组件构建的唯一标识符:
甚至还有第6个组件是数据源。
您似乎指的是写入插件write_graphite
,它将获取这些标识符和指标,并使用它们来创建将存储数据点的目录。
收集仅限于我展示的那五个级别,所以你必须在石墨方面做魔术。