fluent-plugin-rewrite 0.0.5 → 0.0.6
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/fluent-plugin-rewrite.gemspec +1 -1
- data/lib/fluent/plugin/out_rewrite.rb +19 -23
- data/test/plugin/test_out_rewrite.rb +10 -26
- metadata +2 -2
@@ -41,23 +41,8 @@ module Fluent
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def emit(tag, es, chain)
|
44
|
-
es.each do |time, record|
|
45
|
-
tag, record = rewrite(tag, record)
|
46
|
-
Engine.emit(tag, time, record) if tag && record
|
47
|
-
end
|
48
|
-
|
49
|
-
chain.next
|
50
|
-
end
|
51
|
-
|
52
|
-
def length_will_be_removed
|
53
|
-
return 0 unless @remove_prefix
|
54
|
-
(@remove_prefix + '.').length
|
55
|
-
end
|
56
|
-
|
57
|
-
def rewrite(tag, record)
|
58
44
|
if @remove_prefix and
|
59
|
-
|
60
|
-
tag == @remove_prefix)
|
45
|
+
((tag.start_with?(@removed_prefix_string) && tag.length > @removed_length) || tag == @remove_prefix)
|
61
46
|
tag = tag[@removed_length..-1] || ''
|
62
47
|
end
|
63
48
|
|
@@ -65,6 +50,15 @@ module Fluent
|
|
65
50
|
tag = tag && tag.length > 0 ? @added_prefix_string + tag : @add_prefix
|
66
51
|
end
|
67
52
|
|
53
|
+
es.each do |time, record|
|
54
|
+
filtered_tag, record = rewrite(tag, record)
|
55
|
+
Engine.emit(filtered_tag, time, record) if (filtered_tag && record) && (filtered_tag != tag)
|
56
|
+
end
|
57
|
+
|
58
|
+
chain.next
|
59
|
+
end
|
60
|
+
|
61
|
+
def rewrite(tag, record)
|
68
62
|
rules.each do |rule|
|
69
63
|
tag, record, last = apply_rule(rule, tag, record)
|
70
64
|
|
@@ -76,10 +70,10 @@ module Fluent
|
|
76
70
|
end
|
77
71
|
|
78
72
|
def apply_rule(rule, tag, record)
|
79
|
-
|
80
|
-
key
|
81
|
-
pattern
|
82
|
-
last
|
73
|
+
tag_prefix = tag && tag.length > 0 ? "." : ""
|
74
|
+
key = rule["key"]
|
75
|
+
pattern = rule["pattern"]
|
76
|
+
last = nil
|
83
77
|
|
84
78
|
return [tag, record] if !key || !record.has_key?(key)
|
85
79
|
return [tag, record] unless pattern
|
@@ -94,9 +88,11 @@ module Fluent
|
|
94
88
|
|
95
89
|
if rule["append_to_tag"]
|
96
90
|
if rule["tag"]
|
97
|
-
tag
|
91
|
+
tag += (tag_prefix + rule["tag"])
|
98
92
|
else
|
99
|
-
matched.captures.each
|
93
|
+
matched.captures.each do |m|
|
94
|
+
tag += (tag_prefix + "#{m}")
|
95
|
+
end
|
100
96
|
end
|
101
97
|
end
|
102
98
|
|
@@ -105,7 +101,7 @@ module Fluent
|
|
105
101
|
end
|
106
102
|
else
|
107
103
|
if rule["append_to_tag"] && rule["fallback"]
|
108
|
-
tag
|
104
|
+
tag += (tag_prefix + rule["fallback"])
|
109
105
|
end
|
110
106
|
end
|
111
107
|
|
@@ -160,8 +160,6 @@ class RewriteOutputTest < Test::Unit::TestCase
|
|
160
160
|
)
|
161
161
|
|
162
162
|
d4 = create_driver(%[
|
163
|
-
remove_prefix test
|
164
|
-
|
165
163
|
<rule>
|
166
164
|
key path
|
167
165
|
pattern ^\/(users|entries)
|
@@ -170,13 +168,11 @@ class RewriteOutputTest < Test::Unit::TestCase
|
|
170
168
|
])
|
171
169
|
|
172
170
|
assert_equal(
|
173
|
-
[ "users", { "path" => "/users/antipop" } ],
|
171
|
+
[ "test.users", { "path" => "/users/antipop" } ],
|
174
172
|
d4.instance.rewrite("test", { "path" => "/users/antipop" })
|
175
173
|
)
|
176
174
|
|
177
175
|
d5 = create_driver(%[
|
178
|
-
remove_prefix test
|
179
|
-
|
180
176
|
<rule>
|
181
177
|
key is_logged_in
|
182
178
|
pattern 1
|
@@ -186,7 +182,7 @@ class RewriteOutputTest < Test::Unit::TestCase
|
|
186
182
|
])
|
187
183
|
|
188
184
|
assert_equal(
|
189
|
-
[ "user", { "is_logged_in" => "1" } ],
|
185
|
+
[ "test.user", { "is_logged_in" => "1" } ],
|
190
186
|
d5.instance.rewrite("test", { "is_logged_in" => "1" })
|
191
187
|
)
|
192
188
|
end
|
@@ -250,24 +246,6 @@ class RewriteOutputTest < Test::Unit::TestCase
|
|
250
246
|
)
|
251
247
|
end
|
252
248
|
|
253
|
-
def test_tag_prefix
|
254
|
-
d = create_driver(%[
|
255
|
-
remove_prefix test
|
256
|
-
add_prefix filtered
|
257
|
-
|
258
|
-
<rule>
|
259
|
-
key path
|
260
|
-
pattern ^\/(users|entries)
|
261
|
-
append_to_tag true
|
262
|
-
</rule>
|
263
|
-
])
|
264
|
-
|
265
|
-
assert_equal(
|
266
|
-
[ "filtered.users", { "path" => "/users/antipop" } ],
|
267
|
-
d.instance.rewrite("test", { "path" => "/users/antipop" })
|
268
|
-
)
|
269
|
-
end
|
270
|
-
|
271
249
|
def test_emit
|
272
250
|
d = create_driver(%[
|
273
251
|
remove_prefix test
|
@@ -293,15 +271,21 @@ class RewriteOutputTest < Test::Unit::TestCase
|
|
293
271
|
|
294
272
|
d.run do
|
295
273
|
d.emit({ "path" => "/foo?bar=1" })
|
296
|
-
d.emit({ "path" => "/users/antipop?hoge=1" })
|
297
274
|
d.emit({ "path" => "/foo?bar=1", "status" => "500" })
|
275
|
+
d.emit({ "path" => "/users/antipop" })
|
276
|
+
d.emit({ "path" => "/users/kentaro" })
|
277
|
+
d.emit({ "path" => "/entries/1" })
|
298
278
|
end
|
299
279
|
emits = d.emits
|
300
280
|
|
301
|
-
assert_equal
|
281
|
+
assert_equal 4, emits.size
|
302
282
|
assert_equal('filtered.others', emits[0][0])
|
303
283
|
assert_equal({ "path" => "/foo" }, emits[0][2])
|
304
284
|
assert_equal('filtered.users', emits[1][0])
|
305
285
|
assert_equal({ "path" => "/users/antipop" }, emits[1][2])
|
286
|
+
assert_equal('filtered.users', emits[2][0])
|
287
|
+
assert_equal({ "path" => "/users/kentaro" }, emits[2][2])
|
288
|
+
assert_equal('filtered.entries', emits[3][0])
|
289
|
+
assert_equal({ "path" => "/entries/1" }, emits[3][2])
|
306
290
|
end
|
307
291
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-rewrite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
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: 2012-07-
|
12
|
+
date: 2012-07-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|