きっかけ
- fluent-plugin-dynamodbを使っていたら躓いてしまい原因を調査したのでメモ
症状
発生条件
- Apache のログを解析時
- td-agent の
formatでapache2を指定している場合
ちなみに下図のように format が apache だと症状は発生しない。

内容
- DynamoDB にログが記録されない
- td-agent.log に以下が記録される
切り分け memo
- ちなみに Apache のログは以下の通り
access.log
- fluent-plugin-dynamodb は AWS SDK を介して DynamoDB にアクセスしている
- td-agent の
apache2format でuserの列の値が-だった場合にnullが返ってきている - ちなみに out type が
textやmongodbの場合には下記の場合nullのまま記録される
text の場合
mongodb の場合
見解
- AWS SDK が
nullをよろしく解釈してくれずにDynamoDBに記録出来ない - fluentd の
parser.rbをもう少し詳しく読み解く必要がある
その他、気になった点
プロセスの個数
fluent-plugin-dynamodb を使っている(td-agent.conf で type で指定してある)場合、td-agent のプロセスが 4 つになっている(通常は 2 つという認識)
fluent-plugin-dynamodb 適用

fluent-plugin-dynamodb 非適用
