flutendが各ノードで扱うデータの流れは、大まかに2種類。
- アプリの統計情報→fluentd→influxdb
- dstat→fluentd(→dstat情報の整形)→influxdb
dstatからの入力は、fluent-plugin-dstat。
dstatの入力を、influxdbに流すために整形(というより要素ごとに分解)する必要がありますが、やることはそれくらいのはずです。
タグの整形をどうすべきか
さて、しかしその整形を気に入った形にしようとしたら、妙に時間を取られてしまいました。プラグインで自由に拡張できるfluentdであり、選択肢はすぐにいくつも見つかったのですが…書き換えたらそこで仕事を終了して、またmatchの方に回すものが大半です。プリミティブな処理をチェーンしていく思想はわかりますが、今回やらなければならないのはそうではなく。
influxdbに出したいものは influx.* というタグで整理して <match influx> でひっかけて、この中にinfluxdbプラグインの設定を書いています。このinfluxdbプラグイン、タグ名がそのままinfluxdbのseriesとして使われるため、influx.dstat.node1.memory みたいな名前になってしまいます。influxdbに入れるデータにinfluxって付けたくないじゃろ…
結局、これを fluent-plugin-forest で実現しました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<match influx.**> | |
type forest | |
remove_prefix influx | |
subtype influxdb | |
<case **> | |
host 192.168.1.11 | |
port 8086 | |
dbname test | |
</case> | |
</match> |
ただ remove_prefix したいだけなのに大袈裟な気がします。何かもっといい方法はあるんでしょうか?
0 件のコメント:
コメントを投稿