README.markdown in fluent-plugin-map-0.1.0 vs README.markdown in fluent-plugin-map-0.1.1

- old
+ new

@@ -2,31 +2,97 @@ [![Build Status](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-map.svg?branch=master)](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-map) fluent-plugin-map(out\_map) is the non-buffered plugin that can convert an event log to different event log(s) -## Example +## MapFilter +### Example + +This sample config filter code file and time file. + + <source> + @type tail + format apache + path /var/log/httpd-access.log + tag tag + @label @raw + </source> + <label @raw> + <match **> + @type copy + <store> + @type relabel + @label @code + </store> + <store> + @type relabel + @label @time + </store> + </match> + </label> + <label @code> + <filter **> + @type map + map ([time, {"code" => record["code"].to_i}]) + </filter> + <match **> + @type file + path code.log + </match> + </label> + <label @time> + <filter **> + @type map + map ([time, {"time" => record["time"].to_i}]) + </filter> + <match **> + @type file + path time.log + </match> + </label> + + +The parameter "map" can use 2 variables in event log; time, record. The format of time is an integer number of seconds since the Epoch. The format of record is hash. +The config file parses # as the begin of comment. So the "map" value cannot use #{tag} operation. +This plugin can output multi logs by seting multi to true. + +If you don't use multi option, you can use time, record parameter. The 2 following filter directive is same: + + <filter tag> + @type map + map ([time, {"code" => record["code"].to_i}]) + </filter> + <filter tag> + @type map + time time + record ({"code" => record["code"].to_i}) + </filter> + +## MapOutput + +### Example + This sample config output code file and time file. <source> - type tail + @type tail format apache path /var/log/httpd-access.log tag tag </source> <match tag> - type map + @type map map ([["code." + tag, time, {"code" => record["code"].to_i}], ["time." + tag, time, {"time" => record["time"].to_i}]]) multi true </match> <match code.tag> - type file + @type file path code.log </match> <match time.tag> - type file + @type file path time.log </match> The parameter "map" can use 3 variables in event log; tag, time, record. The format of time is an integer number of seconds since the Epoch. The format of record is hash. @@ -34,20 +100,23 @@ This plugin can output multi logs by seting multi to true. If you don't use multi option, you can use key, time, record parameter. The 2 following match directive is same: <match tag> - type map + @type map map (["code." + tag, time, {"code" => record["code"].to_i}]) </match> <match tag> - type map + @type map tag ("code." + tag) time time record ({"code" => record["code"].to_i}) </match> -Note: you have to wrap some configuration values with parenthesis like `("code." + tag)`, to avoid parsing by Fluentd itself. + +## Note + +you have to wrap some configuration values with parenthesis like `("code." + tag)`, to avoid parsing by Fluentd itself. See also: [Fluentd | Configuration File | Format tips](http://docs.fluentd.org/articles/config-file#format-tips) ## Copyright * Copyright (c) 2015- Tomita Kohei