ixixi / fluent-plugin-sqs

Store fluent-event as queue message to Amazon SQS.
35 stars 53 forks source link

Change key type from symbol to string #10

Closed hakobera closed 9 years ago

hakobera commented 9 years ago

現状、fluent-plugin-sqs は record の key を :body のようなシンボルで emit していますが、これだと他のプラグインと連携させることが難しいため、文字列に変更していただくことは可能でしょうか?

例えば、SQS に JSON を送信して、fluent-plugin-parser で parse させようとして、以下の様な設定をしてもうまく動きません。

<source>
  type sqs
  sqs_url https://xxx
  tag sqs
</source>

<match sqs>
  type parser
  tag debug.y
  key_name body
  format json
</match>

これはここrecord[@key_name] のようにして値を取り出すのですが、 config で指定した "body" は文字列なので、シンボルとマッチせずに値が取り出せません。また、config でシンボルを書く方法も現状ありません。

Fluentd コミッタの @sonots さんもこのように に言っていたので、他のプラグインと組み合わせやすいように key をシンボルから文字列に変更するプルリクエストを書いてみました。

ただし、fluent-plugin-sqs としては大きな仕様変更になってしまうので、どうしても無理という場合は独自にフィルターを書いて回避することにします。

以上、よろしくご検討お願いします。

ixixi commented 9 years ago

改めて他pluginなども確認しました。 ご指摘の通り、keyは文字列であるべきですね。 pull reqを取り込むことに致します。

ixixi commented 9 years ago

mergeした版をv1.4.0としてrubygemsにリリースしました。

hakobera commented 9 years ago

@ixixi さん

ありがとうございます。 ただ、リリースされた gem で #4 の問題が再発してしまっています。

msg: ERROR:  Error installing fluent-plugin-sqs:
    fluent-plugin-sqs requires fluent-plugin-sqs (>= 0)

gemspec の以下の部分が不要な気がしますが、いかがでしょうか? https://github.com/ixixi/fluent-plugin-sqs/blob/master/fluent-plugin-sqs.gemspec#L38

ixixi commented 9 years ago

失礼しました。 対応して再度releaseしました。 ご指摘ありがとうございます。