fluent-plugin-record_splitter 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd96d0a95cd0fea74f83b3696a5f613a6317871f
4
- data.tar.gz: 776b7ed3e78ebfc77ac57afe9ae1aac0080841d1
3
+ metadata.gz: 2230a45d9a9323b764283a1291fb8fb9325a2e8e
4
+ data.tar.gz: e53abcfdf737b9a2c7b15760943ef17a6a8c8f51
5
5
  SHA512:
6
- metadata.gz: 40689124abcdb86913e46d1eae027a2527b908f3f67ce63f65ed5b7092b63dfc9e5e46d0a579621a550badbaba000764592ed8e34a8854e71fddb66b9f8f093f
7
- data.tar.gz: e015c41e2be6f89c13e80fa671064946a0ee30a14b965dd2915be7bde0101dfce2aac6ede69fe58ef2b5af2f075f191873314953fe3290d79be3985e9e6994d6
6
+ metadata.gz: 21be9d7a7014d94b09b3fd92b9b677050a936ef54e93bf37b764b9718d3a382147f65580524e60ecd1553a04789140f99fb9015c61f8c5bab1c325ca606a17e6
7
+ data.tar.gz: a58c65739e47df46ac510eb6e3279cd281942e7c0516a97cf01369625e33968611f21b45122ff34ba44f5135434b9334765993f0f64348a6b37225ff18e7dcad
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -1,4 +1,5 @@
1
1
  require 'fluent/plugin/output'
2
+ require 'fluent/mixin'
2
3
  require 'fluent/mixin/config_placeholders'
3
4
  require 'fluent/mixin/rewrite_tag_name'
4
5
 
@@ -7,9 +8,7 @@ module Fluent
7
8
  class RecordSplitterOutput < Output
8
9
  Fluent::Plugin.register_output('record_splitter', self)
9
10
 
10
- config_param :tag, :string
11
- config_param :remove_prefix, :string, default: nil
12
- config_param :add_prefix, :string, default: nil
11
+ config_param :tag, :string, default: nil
13
12
  config_param :split_key, :string
14
13
  config_param :keep_other_key, :bool, default: false
15
14
  config_param :keep_keys, :array, default: []
@@ -17,7 +16,7 @@ module Fluent
17
16
 
18
17
  include SetTagKeyMixin
19
18
  include Fluent::Mixin::ConfigPlaceholders
20
- include Fluent::HandleTagNameMixin
19
+ include HandleTagNameMixin
21
20
  include Fluent::Mixin::RewriteTagName
22
21
 
23
22
  helpers :event_emitter
@@ -37,12 +36,6 @@ module Fluent
37
36
  if !@keep_other_key && !@remove_keys.empty?
38
37
  raise Fluent::ConfigError, 'Cannot set remove_keys when keep_other_key is false.'
39
38
  end
40
- if !@tag && !@remove_prefix && !@add_prefix
41
- raise Fluent::ConfigError, 'missing both of remove_prefix and add_prefix'
42
- end
43
- if @tag && (@remove_prefix || @add_prefix)
44
- raise Fluent::ConfigError, 'both of tag and remove_prefix/add_prefix must not be specified'
45
- end
46
39
  end
47
40
 
48
41
  def process(tag, es)
@@ -52,7 +45,10 @@ module Fluent
52
45
  filter_record(emit_tag, time, record)
53
46
 
54
47
  if @keep_other_key
55
- common = record.reject { |key, _value| key == @split_key || @remove_keys.include?(key) }
48
+ common = record.reject do |key, _value|
49
+ key == @split_key ||
50
+ @remove_keys.include?(key)
51
+ end
56
52
  else
57
53
  common = record.select { |key, _value| @keep_keys.include?(key) }
58
54
  end
@@ -103,4 +103,67 @@ class RecordSplitterOutputTest < Test::Unit::TestCase
103
103
  { 'common' => 'c', 'general' => 'g', 'k2' => 'v2' }]
104
104
  ], d.events
105
105
  end
106
+
107
+ def test_tag_nochange
108
+ d = create_driver %(
109
+ type record_splitter
110
+ split_key target_field
111
+ )
112
+
113
+ d.run(default_tag: 'test') do
114
+ d.feed(event_time, 'target_field' => [{ 'k1' => 'v1' }])
115
+ end
116
+
117
+ d.events.each do |tag, _|
118
+ assert_equal tag, 'test'
119
+ end
120
+ end
121
+
122
+ def test_tag_change
123
+ d = create_driver %(
124
+ type record_splitter
125
+ tag test.split
126
+ split_key target_field
127
+ )
128
+
129
+ d.run(default_tag: 'test') do
130
+ d.feed(event_time, 'target_field' => [{ 'k1' => 'v1' }])
131
+ end
132
+
133
+ d.events.each do |tag, _|
134
+ assert_equal tag, 'test.split'
135
+ end
136
+ end
137
+
138
+ def test_add_tag_suffix
139
+ d = create_driver %(
140
+ type record_splitter
141
+ add_tag_suffix .split
142
+ split_key target_field
143
+ )
144
+
145
+ d.run(default_tag: 'test') do
146
+ d.feed(event_time, 'target_field' => [{ 'k1' => 'v1' }])
147
+ end
148
+
149
+ d.events.each do |tag, _|
150
+ assert_equal tag, 'test.split'
151
+ end
152
+ end
153
+
154
+ def test_add_tag_prefix
155
+ d = create_driver %(
156
+ type record_splitter
157
+ add_tag_prefix split.
158
+ split_key target_field
159
+ )
160
+
161
+ d.run(default_tag: 'test') do
162
+ d.feed(event_time, 'target_field' => [{ 'k1' => 'v1' }])
163
+ end
164
+
165
+ d.events.each do |tag, _|
166
+ assert_equal tag, 'split.test'
167
+ end
168
+ end
106
169
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-record_splitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuri Odagiri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-02 00:00:00.000000000 Z
11
+ date: 2017-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd