y-ken / fluent-plugin-twitter

Fluentd Input/Output plugin to process tweets with Twitter Streaming API.
https://rubygems.org/gems/fluent-plugin-twitter
Other
53 stars 27 forks source link

log_level enabled can not do? #37

Closed naa0yama closed 1 year ago

naa0yama commented 7 years ago

Fill the console you get lots of Tweets, are in trouble.

Add log_level option by repeatedly · Pull Request #255 · fluent/fluentd

y-ken commented 7 years ago

Oh, I have forgot to implement it. I'll fix it soon.

naa0yama commented 7 years ago

Thank you.

y-ken commented 7 years ago

Would you please tell me the type of logs? I know the two type of logs but you mean to another logs.

naa0yama commented 7 years ago

I'm not so good at writing English, so I also write in Japansese.

en

It is the https://github.com/y-ken/fluent-plugin-twitter/blob/master/lib/fluent/plugin/in_twitter.rb that I use. I changed "$ log.info" to "log.info", but it seems that it is not reflected. Although it is a suggestion, how about trying log_level debug tweet for images?

ja

私が使っているのは、 https://github.com/y-ken/fluent-plugin-twitter/blob/master/lib/fluent/plugin/in_twitter.rb の方です。 自分で "$log.info" を "log.info" に書き換えたのですが、反映されなかったようです。 そこで、提案ですが画像の用にツイートを log_level debug にしてみてはどうでしょう?

y-ken commented 7 years ago

apiキーは隠した上で、設定ファイルを見せて頂けますか? おそらく、設定サンプルのように、stdoutの設定が残ってるように見受けられます。

<match twitter.sampling>
  @type stdout
</match>
naa0yama commented 7 years ago

ありがとう御座います。 日本語で安心しました。

現在は開発中なので、こちらのレポジトリーに全ファイル置いてあります。 api Key を 直書きしないために環境変数を多様してます。みにくいかと思いますがよろしくお願いします。 fluent-norikra-elasticsearch-kibana/fluent-twitter/conf.d at master · FoxBoxsnet/fluent-norikra-elasticsearch-kibana

追加で説明しますと。ここで log_level warn 指定してます。 https://github.com/FoxBoxsnet/fluent-norikra-elasticsearch-kibana/blob/master/fluent-twitter/conf.d/31-match.norikra.output.conf#L41

y-ken commented 7 years ago

ログを発生させているところで、log_levelの設定を行う事で出力されるログを制御できます。[info]付きのログメッセージがそれです。 ですのでstdoutを指定した場合には、そこで流れていたログが全て表示されるのは仕様です。

前提として、ログ自体はfluent.infoやfluent.warnなどのタグで流れております。 ref. http://chopl.in/post/2013/04/27/fluentd_internal_log/

stdoutで出力される内容を制御するためには、filterプラグインを経由する必要があります。

naa0yama commented 7 years ago

stdoutで出力される内容を制御するためには、filterプラグインを経由する必要があります。

公式サイトにこちらの記事があり、log_level 使えるそうです http://docs.fluentd.org/v0.12/articles/out_stdout

36 現在これに遭遇して gem uninstall json -v='2.0.3' を追加する事で 0.6.0 で 起動は出来ましたが、ツイートが来なかったため、 0.5.4 を使用してます

先ほど確認したら 対応されてましたね. ごめんなさい。私の勘違いのようです

y-ken commented 7 years ago

stdoutでlog_levelを用いるケースですが、それ自体で発生するエラー、bufferd outputではなくmemory outputなので、例えばディスクフルのため標準出力ログに書き出せなかった、といったエラーを出すかどうかの制御程度しか想定できません。 log_levelの制御対象はタグの中のメッセージではなく、指定したそのプラグインによって発生したタグの中のメッセージとは別にログファイルに書き出すべきエラーです。そのため、制御できるのは既にログファイルに書き出されている[notice]や[info]、[warn]が付いたものに限定されるのです。

naa0yama commented 7 years ago

そうですか、 では fluent-plugin-twitter0.5.4 以上で稼働出来るようになったら

<source>
  type twitter

  log_level warn
</source>

と書いてログ出力側の方で設定する用にしてみます。 ありがとう御座いました.

y-ken commented 7 years ago

status has updated. ref #39

y-ken commented 7 years ago

新しいバージョンを本日リリースしましたので、確認をお願いします。 https://rubygems.org/gems/fluent-plugin-twitter/versions/0.6.1

y-ken commented 7 years ago

おそらく、次の所で発生したエラーを、集約サーバで集めたいのだと推測します。

<source>
  type twitter

  log_level warn
</source>

その場合には、次のように発生した内部エラーログを他のサーバに転送する設定がtwitterを入れてるサーバで必要です。

<filter fluent.**>
  type record_transformer
  <record>
    host ${hostname}
  </record>
</match>

<match fluent.**>
  type forward
  <server>
    name watcher
    host watcher.domain
    port 24224
  </server>
</match>