コミケ告知

サークル networkmaniacs.net(旧:浜風もっこす) 2017.02.17 デブサミ内 DevBooksに出展します。
詳細は circle タグの記事へ。
2015年4月15日水曜日

fluentdで出力tagを書き換えるのに苦労した話

とても久しぶりにfluentdを使ってみることにしました。目的は、ローカルで集めたものをinfluxdbに飛ばすこと。後々はキューを挟むかもしれないけど、とりあえずは直接。あとは、ついでにCPUやらメモリやらの情報も飛ばそうと。既に実現例のたくさんある話の合わせ技です。


flutendが各ノードで扱うデータの流れは、大まかに2種類。
  • アプリの統計情報→fluentd→influxdb
  • dstat→fluentd(→dstat情報の整形)→influxdb
influxdbへの出力は、fluent-plugin-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 で実現しました。

ただ remove_prefix したいだけなのに大袈裟な気がします。何かもっといい方法はあるんでしょうか?

0 件のコメント:

コメントを投稿