2016-07-20 10 views
0

perlのカスタムcollecdプラグインを書き込んでいます。 ネットワークモニタリング "netmonit"のためにそう言います。 は、だから私はそのようなデータを送信している:私はサブディレクトリにデータを送信できる場合subdirsのcollectd perlプラグインデータ

server-group.server.netmonit.net1_counter1 
server-group.server.netmonit.net1_counter2 
server-group.server.netmonit.net2_counter1 
server-group.server.netmonit.net2_counter2 

私の質問は:collectdで

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

試しましたか?それは動作しましたか? – simbabque

+0

私がここに示している例は、すべてを1つのディレクトリに置きます。 誰かがサブディレクトリを持つ例があるかどうかを知りたいです。 – kabi

答えて

0

「ディレクトリにデータを送信する」のようなものはありません。 Collectdは、単純に数字を収集し、それらを5つのコンポーネントを使用して構築された一意の識別子を割り当てます。

  • ホスト
  • プラグイン
  • プラグインインスタンス
  • タイプ
  • 型インスタンス

がありますデータソースである6番目のコンポーネントでさえも。

ライトプラグインwrite_graphiteは、これらの識別子とメトリックを使用し、それらを使用してデータポイントが保存されるディレクトリを作成します。

Collectdは私が示した5つのレベルに限られているので、グラファイト側で魔法を使わなければなりません。

関連する問題