在子目录中收集perl插件数据

时间:2016-07-20 09:03:56

标签: perl collectd

我在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;
}

1 个答案:

答案 0 :(得分:0)

在collectd中没有“向目录发送数据”之类的东西。 Collectd只是收集数字并为它们分配一个使用5个组件构建的唯一标识符:

  • 宿主
  • 插件
  • 插件实例
  • 型实例

甚至还有第6个组件是数据源。

您似乎指的是写入插件write_graphite,它将获取这些标识符和指标,并使用它们来创建将存储数据点的目录。

收集仅限于我展示的那五个级别,所以你必须在石墨方面做魔术。