ようへいの日々精進XP

よかろうもん

fluent-plugin-dynamodb でちょっと躓いたので切り分けメモ

きっかけ


症状

発生条件

  • Apache のログを解析時
  • td-agent の formatapache2 を指定している場合

ちなみに下図のように formatapache だと症状は発生しない。

f:id:inokara:20130901173158p:plain

内容

  • DynamoDB にログが記録されない
  • td-agent.log に以下が記録される

切り分け memo

  • ちなみに Apache のログは以下の通り

access.log

  • fluent-plugin-dynamodb は AWS SDK を介して DynamoDB にアクセスしている
  • td-agent の apache2 format で user の列の値が - だった場合に null が返ってきている
  • ちなみに out type が textmongodb の場合には下記の場合 null のまま記録される

text の場合

mongodb の場合


見解

  • AWS SDKnull をよろしく解釈してくれずに DynamoDB に記録出来ない
  • fluentd の parser.rb をもう少し詳しく読み解く必要がある

その他、気になった点

プロセスの個数

fluent-plugin-dynamodb を使っている(td-agent.conf で type で指定してある)場合、td-agent のプロセスが 4 つになっている(通常は 2 つという認識)

fluent-plugin-dynamodb 適用

f:id:inokara:20130901171346p:plain

fluent-plugin-dynamodb 非適用

f:id:inokara:20130901171358p:plain