Closed yuiseki closed 11 years ago
大変ありがとうございます。langフィルタに関する不具合、すみませんでした。 早速マージを行い、動作確認の後にリリースしたいと思います。
将来、その他の出力方式にも対応出来るよう、formatオプションの新設を検討しています。 その形での取り込みを検討しているのですが、特に支障はございませんでしょうか。 もし可能であれば、この機会にご意見頂けると幸いです。
raw・・・今回のraw_jsonオプションを意味する設定 compact・・・現在のデフォルト設定 stot・・・将来追加するSTOT(Share Twitter On Tumblr)形式 http://toshia.github.com/writing-mikutter-plugin/#sec-5
<source>
type twitter
consumer_key YOUR_CONSUMER_KEY
consumer_secret YOUR_CONSUMER_SECRET
oauth_token YOUR_OAUTH_TOKEN
oauth_token_secret YOUR_OAUTH_TOKEN_SECRET
tag input.twitter.sampling
timeline sampling
keyword Ruby,Python
format json
</source>
おお、formatオプションで色々と出力を切り替えられる方式にするというアイデア、いいですね。 この形で取り込んで頂いて問題ありません。 STOTという名前は初めて知りましたが、たしかにtumblrなどで見かけた事があります。
早速のご確認ありがとうございます。 それでは、formatオプションで実装します。 値が何になるかはまだ何とも言えませんが、決まり次第こちらに書き込みます。
作業途中ですが、大枠が出来たのでpushしました。 https://github.com/y-ken/fluent-plugin-twitter/commit/7f1f9013f030bd6e24588a56248fabdab78082e9 以下、ご確認お願いできますでしょうか。
作業お疲れ様です、確認しました。
基本的にon_anythingを使うように変更されたのですね。 全体的にわかりやすく、拡張しやすい形になっていてgoodだと思います!
EMのエラーは、fluentdとTweetstream gemがたまたまおなじEMという定数名で双方でEventMachineを初期化しているのが問題だと思うのですが、plugin側からだと対処できなさそうですね…。 他のpluginでもEMという定数名でEventMachineを初期化しているgemを呼び出したらおなじ問題が起こりそうな気がします。
お返事頂きありがとうございます。
format にnest(raw_json), flat(添え字を_区切りで入れ子展開), simple(後方互換用)というパラメータを用意する実装で落ち着きつつあります。
READMEの整備を行った後にgemとしてリリース予定です。しばしお待ち頂けると幸いです。
なお、先ほど追加しましたformat flat
は地味にオススメです。入れ子構造がシンプルになるだけでなく、
2次元配列に対応していないFluentdプラグインとの連携が可能となることがメリットです。
https://github.com/y-ken/fluent-plugin-twitter/blob/master/lib/fluent/plugin/in_twitter.rb
そしてEMのエラー、ご教示頂きありがとうございます。これは根が深そうですね。 grepすると、以下2つのgemでバッティングしていることが分かりました。 前者(eventmachine)がTweetStreamが利用する物で、後者(cool.io)がFluentdで利用している物です。 overrideする事で回避出来るか確認してみたいと思います。
$ sudo fgrep -r -n "EM = EventMachine" /usr/lib64/fluent/
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:1535:EM = EventMachine
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/cool.io-1.1.0/lib/cool.io/eventmachine.rb:234:EM = EventMachine
このたびは本当にありがとうございました。
より分かりやすい output_format
というオプション名とし、v0.2.1をリリースしました。
https://github.com/y-ken/fluent-plugin-twitter/tree/v0.2.1
同時に、紹介頂いたQiitaの記事にREADMEからリンクさせて頂きました。 もし不都合ありましたら調整行いますので、お知らせ頂けますでしょうか。 また、大変お手数掛けますが、今回の内容に合わせて、Qiitaの記事を微調整頂けると幸いです。
- raw_json true
+ output_format flat
※ datacounter等のプラグイン親和性を考慮し、ここはnestではなくflatというのはいかがでしょうか。
はじめまして、yuisekiといいます。
fluentdで色々データを収集・調査してみようと思い、手軽に使えるものとしてfluent-plugin-twitterを便利に使わせて頂いています。
今回、twitter streaming apiから送られてくる生のJSONの値すべてを保存したいと思ったので、オプションのフラグで切り替えられるようにしてみました。
また、:langのフィルタリングに関して、ひとつも指定がなかった場合はすべての言語で遮断されていたのですが、すべての言語をスルーして入力するように変更しています。
もしよかったらマージして頂ければと思います。よろしくお願いします。