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のパースのコストが都度かかる思われる(コードは読んでない)のでパフォーマンステストなどを行い問題がないことを確認すべき