Fluentd でログの中身からさらにタグ付けをしたいというユースケースがありました。
具体的には Docker log driver 経由で Fluentd が受け取ったログを stderr と stdout でタグ付けしなおしたい(re route したい)といったものがあり以下のように対応しました。
ここでは Fluentd や依存ライブラリのバージョンは以下で確認しました。
- fluentd:v1.2.4
- fluent-plugin-rewrite-tag-filter:2.1.0
match 部分の conf
expected fluent tag : “docker.{{.ID}}”
<match docker.\*>
@type rewrite_tag_filter
<rule>
key source
pattern /^stdout$/
tag stdout
</rule>
<rule>
key source
pattern /^stderr$/
tag stderr
</rule>
</match>
ちなみに正規表現と json のパースのコストが都度かかる思われる(コードは読んでない)のでパフォーマンステストなどを行い問題がないことを確認すべき