fluentdFluentdに負荷をかけたいなと思いまして・・。前回作ったapache-loggenを使っても良いのですが、あれだと一度diskに出力する事になるし、Rubyなので複数コアがあるホストだと何プロセスも起動するのは嫌だなーと。いうわけで、今回はマルチプロセスで直接Fluentdにmsgpack形式のデータを投げるものを作ってみました。in_forwardで受け付ける形式は何個かあるみたいですが、今回は以下の形式のものを。}実際の実行画面のキャプチャです。́・ω・)parallelでforkするので複数コアを活用します。情報はUNIXSocketで親プロセスへ集めて表示はCursesを使っています。それぞれの子プロセスの情報とそれぞれを集計した情報を出力しています。灰色でマスクしているところには設定が表示されています。上記の画面では、毎秒10リクエスト、1リクエストで50レコード、つまり毎秒500レコード。それを4プロセスで送りつけているので、毎秒2000レコードの負荷をかけているものになります。全開でまわせば、L社の初期の流量くらいは出せると思います。負荷をかけるFluentdのホスト名。デフォルトはlocalhost。負荷をかけるFluentdのポート番号。デフォルトは24224。1秒間に送信するリクエスト数。デフォルトは制限無し。1回のリクエストで送信するレコード数。いわゆるArrayの要素数。負荷をかけるプロセスの数。ログの形式を指定する。これは会社依存のオプションなので詳細は無し。ダミーログの時間を元ファイルの時間のまま送る場合に指定する。指定しなければ現在の時間に直して送信される。アプリの実際のログを元に生成しています。このままでは公開はできないのですが、ここを除去すれば問題ないので気が向いたらやろうかなと・・。