README.md in fluent-plugin-rename-key-0.1.2 vs README.md in fluent-plugin-rename-key-0.1.3
- old
+ new
@@ -1,30 +1,41 @@
# fluent-plugin-rename-key
+## Status
+[![Gem Version](https://badge.fury.io/rb/fluent-plugin-rename-key.png)](http://badge.fury.io/rb/fluent-plugin-rename-key)
+[![Build Status](https://travis-ci.org/shunwen/fluent-plugin-rename-key.png?branch=master)](https://travis-ci.org/shunwen/fluent-plugin-rename-key)
+[![Coverage Status](https://coveralls.io/repos/shunwen/fluent-plugin-rename-key/badge.png?branch=master)](https://coveralls.io/r/shunwen/fluent-plugin-rename-key?branch=master)
+
## Overview
Fluentd Output filter plugin. It goes through each record, rename keys matching the given regular expressions, and re-emit the event with a new tag. This plugin resembles the implementation of [fluent-plugin-rewrite-tag-filter](https://github.com/y-ken/fluent-plugin-rewrite-tag-filter).
-This plugin is created to resolve the invalid record problem while converting to BSON document before inserting to MongoDB, see [restrictions on Field Names](http://docs.mongodb.org/manual/reference/limits/#Restrictions on Field Names) and [MongoDB Document Types](http://docs.mongodb.org/meta-driver/latest/legacy/bson/#mongodb-document-types).
+This plugin is created to resolve the invalid record problem while converting to BSON document before inserting to MongoDB, see [Restrictions on Field Names](http://docs.mongodb.org/manual/reference/limits/#Restrictions on Field Names) and [MongoDB Document Types](http://docs.mongodb.org/meta-driver/latest/legacy/bson/#mongodb-document-types).
## Installation
install with gem or fluent-gem command as:
```
# for fluentd
$ gem install fluent-plugin-rename-key
+# for td-agent OSX (Homebrew)
+$ /usr/local/Cellar/td-agent/1.1.17/bin/fluent-gem install fluent-plugin-rename-key
+
# for td-agent
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-rename-key
```
## Configuration
### Syntax
```
+# <num> is a integer, used to sort and apply the rules
+# <key_regexp> is the regular expression used to match the keys, whitespace is not allowed, use "\s" instead
+# <new_key> is the string with MatchData placeholder for creating the new key name, whitespace is allowed
rename_rule<num> <key_regexp> <new_key>
# Optional: remove tag prefix
remove_tag_prefix <string>
@@ -40,29 +51,29 @@
Take this record as example: `'$url' => 'www.google.com', 'level2' => {'$1' => 'option1'}`.
To successfully save it into MongoDB, we can use the following config to replace the keys starting with dollar sign.
```
-# At rename_rule1, it matches the key starting the `$`, say `$url`,
-# and puts the following characters into match group 1.
+# At rename_rule1, it matches the key starting the `$`, say `$url`,
+# and puts the following characters into match group 1.
# Then uses the content in match group 1, `url`, to generate the new key name `x$url`.
<match input.test>
type rename_key
remove_tag_prefix input.test
append_tag renamed
rename_rule1 ^\$(.+) x$${md[1]}
- rename_rule2 ^l(eve)l(\d+) ${md[1]}_${md[2]}
+ rename_rule2 ^l(.{3})l(\d+) ${md[1]}_${md[2]}
</match>
```
-The resulting record will be `'x$url' => 'www.google.com', 'eve_2' => {'x$1' => 'option1'}`
+The resulting record becomes `'x$url' => 'www.google.com', 'eve_2' => {'x$1' => 'option1'}`
### MatchData placeholder
This plugin uses Ruby's `String#match` to match the key to be replaced, and it is possible to refer to the contents of the resulting `MatchData` to create the new key name. `${md[0]}` refers to the matched string and `${md[1]}` refers to match group 1, and so on.
-**Note** Range expression ```${md[0..2]}``` is not supported.
+**Note:** Range expression ```${md[0..2]}``` is not supported.
## TODO
Pull requests are very welcome!!