Fluentd に in_dummy プラグインが bundle されたので紹介します。v0.10.58 および v0.12 以降に同梱されています。
これは、タゴ・モリスという人が以前作った fluent-plugin-dammydata-producer プラグインを元に Fluentd 本体に移植したもので、Fluentd プロセス内でメッセージを生成して、動作確認をするのにご利用いただけます。
今までの fluent-cat を用いた動作確認
以前なら、Fluentd にテストデータを流して動作確認するには
<source>
type forward>
</source>
<match raw.**>
type stdout
</match>
のように conf を記述して、
$ fluentd -c fluent.conf
として fluentd を起動した後、
$ echo '{"message":"foo"}' | fluent-cat -h localhost raw.foo
のように fluent-cat コマンドでデータを流して確認していたと思います。
in_dummy プラグインを用いた動作確認
in_dummy プラグインを用いて、例えば conf を次のように記述すると、
<source>
type dummy
tag raw.foo
dummy {"message":"foo"}
</source>
<match raw.**>
type stdout
</match>
$ fluentd -c fluent.conf
2014-12-05 00:08:12 +0900 raw.foo: {"message":"foo"}
2014-12-05 00:08:13 +0900 raw.foo: {"message":"foo"}
2014-12-05 00:08:14 +0900 raw.foo: {"message":"foo"}
fluentd を起動しただけでデータが流れるようになります。fluent-cat を叩く必要がなくて便利ですね!
fluent-cat を叩かなくてもよいという点に加えて、conf 中に入力データのサンプルを一緒に書けるようになった点も影響が大きいかと思っています。
これにより入力データを明確に記述できるようになりましたし、自作プラグインの README に使い方を書く場合や、MLで質問に答える場合に役立ちそうです。
ユーザとして試す場合も、in_dummy プラグインで入力データも示されていれば、コピペするだけで動くので簡単ですね!
in_dummy プラグインのオプション
in_dummy プラグインのオプションは以下のようになります。
-
tag
- 必須。タグを指定します。
-
rate
- メッセージを生成する頻度(messages / sec)を指定します。デフォルトは 1 (1秒に1メッセージ)です。
-
dummy
- 生成するダミーデータを JSON Hash 形式、または JSON Hash の Array 形式で複数メッセージを指定します。デフォルトは
{"message":"foo"}
です。
- 生成するダミーデータを JSON Hash 形式、または JSON Hash の Array 形式で複数メッセージを指定します。デフォルトは
-
auto_increment_key
- 自動インクリメント機能を使用するメッセージのkeyを指定します。メッセージが生成される度に値が1増えます。
dummer とのポジション的な違い
in_dummy プラグインは Fluentd の同一プロセス内でメッセージを生成するため Fluentd の性能検証をするのには向かないでしょう。データを生成するプロセス(ベンチマーククライアント)は別プロセスにしたいものです。
別プロセスを立ち上げて性能検証をするためには、類似のツールとして拙作の dummer というツールがあるのでそちらを利用すると良いでしょう。
まとめ
in_dummy プラグインが bundle されました。動作確認、conf のサンプルを書く際に是非、お使いください。