More than 1 year has passed since last update.

fluent-plugin-twitter

https://github.com/y-ken/fluent-plugin-twitter

y-ken さんが公開して下さっている fluent-plugin-twitter を使うと tweetstream gem を使って streaming api でツイートを受信して fluentd で扱うことができるようになる。

fluent-plugin-datacounter

https://github.com/tagomoris/fluent-plugin-datacounter

tagomoris さんが公開して下さっている fluent-plugin-datacounter を使うと指定した時間内に正規表現にマッチするログが何件あるかを数えてその結果を fluentd で扱うことができるようになる。

ツイート数をリアルタイムにカウントする

今回はこの二つを使って、あるアカウントのホームタイムラインのツイートをカウントして mongodb に保存してみたい。

fluentd.conf
## fluentd conf

# fluent-plugin-twitter の設定
<source>
  type twitter
  consumer_key        ***
  consumer_secret     ***
  oauth_token         ***
  oauth_token_secret  ***
  tag                 input.twitter.test
  timeline            userstream
  output_format       nest
</source>

# fluent-plugin-datacounter の設定
<match datacount.**>
  type copy
  <store>
    type mongo
    host        localhost
    database    fluentd-test
    collection  datacountsample
  </store>
  <store>
    type stdout
  </store>
</match>

# 受信したツイートを処理する設定
<match input.twitter.**>
  type copy
  <store>
    type datacounter
    tag  datacount.twitter.5m
    count_interval 5m
    aggregate all 
    input_tag_remove_prefix input.twitter.test
    output_messages  true

    # ここの設定は変える必要ある
    count_key id_str
    pattern1 tweet ^\d*
  </store>
  <store>
    type mongo
    host        localhost
    database    fluentd-test
    collection  twittersample
  </store>
</match>