fluent-plugin-config_reloaderという名前で作ってみまてます。 昨日のエントリーに書いたものから実用的になるように考えを進めてます。
- 設定ファイルの再読み込みだけに特化した
- シグナルをやめて、指定したパスにファイルをtouchすると再読み込みを行うようにした
コード
bash0C7/fluent-plugin-config_reloader · GitHub
設定
type config_reloader config_file child.conf reload_file reload.txt reload_file_watch_interval 5
- config_file: 子供の設定ファイルのパス
- reload_file: 再読み込みの契機となるファイルのパス
- reload_file_watch_interval(optional): 再読み込みの契機となるファイルをウォッチする間隔を秒数で指定。デフォルトは1。
子供の設定ファイルの書き方
<store>ディレクティブを一つとります。copyプラグインを指定する場合は、こんな感じなネストになります。
<store>
type copy
<store>
type stdout
</store>
<store>
type null
</store>
</store>
再読み込みをさせる方法
指定した再読み込みの契機となるファイルをtouchしてください。 再読み込みが走るとログにその旨がでます。
2014-05-06 18:01:55 +0900 example: {"uri":"http://example.com"}
2014-05-06 18:01:56 +0900 [warn]: config_reloader: reload config file start
2014-05-06 18:01:56 +0900 [warn]: config_reloader: reload config file end
2014-05-06 18:01:56 +0900 example: {"uri":"http://example.com"}
まだ残っているもの
- テスト書き
- 子供の設定ファイルがおかしいときのエラー出力
謝辞
fluent-plugin-restart-plugin,誰か作るんだ!プラグインidを指定して再起動する方法 or 内部にプラグインを内包してそれを書き換える方法,どっちでもそれなりに動く気がする
— Mr. Fiber (@repeatedly) 2014, 5月 4
ここまで書いてみてようやく@repeatedly先生の話がわかってきました。これ、後者の実装やったんや…