fluent-plugin-redeliver 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +8 -3
- data/fluent-plugin-redeliver.gemspec +1 -1
- data/lib/fluent/plugin/out_redeliver.rb +11 -1
- data/test/plugin/test_out_redeliver.rb +42 -0
- metadata +3 -3
data/README.md
CHANGED
@@ -12,7 +12,8 @@ Simple re-delivery plugin to process log record as another tag
|
|
12
12
|
regexp ^foo\.(.*)$
|
13
13
|
replace bar.\1
|
14
14
|
# add original tag to record['__tag'] (optional)
|
15
|
-
|
15
|
+
include_tag_key true
|
16
|
+
tag_key __tag
|
16
17
|
</match>
|
17
18
|
|
18
19
|
<match bar.**>
|
@@ -21,6 +22,8 @@ Simple re-delivery plugin to process log record as another tag
|
|
21
22
|
</match>
|
22
23
|
```
|
23
24
|
|
25
|
+
For v0.0.2 User: `tag_attr` is obsoleted. But it works compatible with 0.0.2 now.
|
26
|
+
|
24
27
|
### More Effective
|
25
28
|
|
26
29
|
```
|
@@ -36,7 +39,8 @@ Simple re-delivery plugin to process log record as another tag
|
|
36
39
|
type redeliver
|
37
40
|
regexp ^myapp\.error\.(.*)$
|
38
41
|
replace logging.error.\1
|
39
|
-
|
42
|
+
include_tag_key true
|
43
|
+
tag_key __tag
|
40
44
|
</store>
|
41
45
|
</match>
|
42
46
|
|
@@ -72,7 +76,8 @@ Simple re-delivery plugin to process log record as another tag
|
|
72
76
|
|
73
77
|
* `regexp`: redelivers the record if tag matches specified pattern.
|
74
78
|
* `replace`: rewrites tag for re-emit. You can use n-th matched subexpression(\1,\2...) for replace string.
|
75
|
-
* `
|
79
|
+
* `include_tag_key`: enables adding original tag to specified key when regexp matches.
|
80
|
+
* `tag_key`: adds original tag to specified key when include_tag_key set `true`.
|
76
81
|
|
77
82
|
|
78
83
|
## Installation
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = "fluent-plugin-redeliver"
|
7
|
-
gem.version = "0.0
|
7
|
+
gem.version = "0.1.0"
|
8
8
|
gem.authors = ["Masatoshi Kawazoe (acidlemon)"]
|
9
9
|
gem.email = ["acidlemon@beatsync.net"]
|
10
10
|
gem.description = %q{simple tag-based redeliver plugin}
|
@@ -1,8 +1,13 @@
|
|
1
1
|
class Fluent::RedeliverOutput < Fluent::Output
|
2
2
|
Fluent::Plugin.register_output('redeliver', self)
|
3
3
|
|
4
|
+
include Fluent::SetTagKeyMixin
|
5
|
+
config_set_default :include_tag_key, false
|
6
|
+
|
4
7
|
config_param :regexp, :string, :default => nil
|
5
8
|
config_param :replace, :string, :default => nil
|
9
|
+
|
10
|
+
# obsolete option
|
6
11
|
config_param :tag_attr, :string, :default => nil
|
7
12
|
|
8
13
|
def initialize
|
@@ -11,6 +16,11 @@ class Fluent::RedeliverOutput < Fluent::Output
|
|
11
16
|
|
12
17
|
def configure(conf)
|
13
18
|
super
|
19
|
+
|
20
|
+
if tag_attr
|
21
|
+
@include_tag_key = true
|
22
|
+
@tag_key = tag_attr
|
23
|
+
end
|
14
24
|
end
|
15
25
|
|
16
26
|
def start
|
@@ -30,7 +40,7 @@ class Fluent::RedeliverOutput < Fluent::Output
|
|
30
40
|
if newtag != tag and newtag.length > 0
|
31
41
|
es.each do |time, record|
|
32
42
|
if (record)
|
33
|
-
|
43
|
+
filter_record(tag, time, record)
|
34
44
|
Fluent::Engine.emit(newtag, time, record)
|
35
45
|
end
|
36
46
|
end
|
@@ -22,6 +22,7 @@ class RedeliverOutputTest < Test::Unit::TestCase
|
|
22
22
|
assert_equal '^app\.(.*)\.(.*)$', d.instance.regexp
|
23
23
|
assert_equal 'test.hoge.\1_\2', d.instance.replace
|
24
24
|
assert_equal nil, d.instance.tag_attr
|
25
|
+
assert_equal false, d.instance.include_tag_key
|
25
26
|
|
26
27
|
d = create_driver %[
|
27
28
|
regexp ^debug\\.(.*)$
|
@@ -32,6 +33,21 @@ class RedeliverOutputTest < Test::Unit::TestCase
|
|
32
33
|
assert_equal '^debug\.(.*)$', d.instance.regexp
|
33
34
|
assert_equal 'ignore.\1', d.instance.replace
|
34
35
|
assert_equal '__tag', d.instance.tag_attr
|
36
|
+
assert_equal true, d.instance.include_tag_key
|
37
|
+
assert_equal '__tag', d.instance.tag_key
|
38
|
+
|
39
|
+
d = create_driver %[
|
40
|
+
regexp ^powawa\\.(.*)$
|
41
|
+
replace powapowa.\\1
|
42
|
+
include_tag_key true
|
43
|
+
tag_key __tag__
|
44
|
+
]
|
45
|
+
|
46
|
+
assert_equal '^powawa\.(.*)$', d.instance.regexp
|
47
|
+
assert_equal 'powapowa.\1', d.instance.replace
|
48
|
+
assert_equal nil, d.instance.tag_attr
|
49
|
+
assert_equal true, d.instance.include_tag_key
|
50
|
+
assert_equal '__tag__', d.instance.tag_key
|
35
51
|
|
36
52
|
end
|
37
53
|
|
@@ -114,6 +130,32 @@ class RedeliverOutputTest < Test::Unit::TestCase
|
|
114
130
|
|
115
131
|
assert_equal 0, emits.length
|
116
132
|
|
133
|
+
|
134
|
+
# v0.1.0 SetTagKeyMixIn support
|
135
|
+
d5 = create_driver %[
|
136
|
+
regexp ^powawa\\.(.*)$
|
137
|
+
replace powapowa.\\1
|
138
|
+
include_tag_key true
|
139
|
+
tag_key __tag__
|
140
|
+
], 'powawa.standalone'
|
141
|
+
|
142
|
+
d5.run do
|
143
|
+
d5.emit({ "test" => "value5" }, now1)
|
144
|
+
end
|
145
|
+
|
146
|
+
emits = d5.emits
|
147
|
+
|
148
|
+
assert_equal 1, emits.length
|
149
|
+
|
150
|
+
assert_equal 'powapowa.standalone', emits[0][0]
|
151
|
+
assert_equal now1.to_i, emits[0][1]
|
152
|
+
assert_equal 'value5', emits[0][2]['test']
|
153
|
+
assert_equal nil, emits[0][2]['tag']
|
154
|
+
assert_equal nil, emits[0][2]['__tag']
|
155
|
+
assert_equal 'powawa.standalone', emits[0][2]['__tag__']
|
156
|
+
|
157
|
+
|
158
|
+
|
117
159
|
end
|
118
160
|
|
119
161
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-redeliver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
81
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.8.
|
82
|
+
rubygems_version: 1.8.23
|
83
83
|
signing_key:
|
84
84
|
specification_version: 3
|
85
85
|
summary: simple tag-based redeliver plugin
|