fluent-plugin-flatten 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4a8ba7f4d84e3a2bef454ea068925b670238f2f5
4
+ data.tar.gz: d87803fbf7ca88eaad5265ece23ed36a5e5d12f7
5
+ SHA512:
6
+ metadata.gz: 06c0fdcadf8a1e2e2eebedf2b530c76a454f081651ac194cfcb77814bbe096a28ae0bd055122c1b53f28951834a7a3e9d25c0f1d0e9b0f962dac680ebb5cad16
7
+ data.tar.gz: e7220024b630036da3bb1be8c79bef88c5f2e4df2d55d5da3cdfb7eada8c86969b17c1ec2c7a5ad32c2aae726e758eaffcb3109be40faf98cb58585b16f3496e
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'fluent-plugin-flatten'
3
- gem.version = '0.0.6'
3
+ gem.version = '0.0.7'
4
4
  gem.authors = ['Kentaro Kuribayashi']
5
5
  gem.email = ['kentarok@gmail.com']
6
6
  gem.homepage = 'http://github.com/kentaro/fluent-plugin-flatten'
@@ -7,8 +7,9 @@ module Fluent
7
7
 
8
8
  Fluent::Plugin.register_output('flatten', self)
9
9
 
10
- config_param :key, :string
11
- config_param :inner_key, :string, :default => 'value'
10
+ config_param :key, :string
11
+ config_param :inner_key, :string, :default => 'value'
12
+ config_param :parse_json, :bool, :default => true
12
13
 
13
14
  def configure(conf)
14
15
  super
@@ -45,10 +46,14 @@ module Fluent
45
46
  hash = nil
46
47
 
47
48
  begin
48
- # XXX work-around
49
- # fluentd seems to escape json value excessively
50
- json = record[key].gsub(/\\"/, '"')
51
- hash = JSON.parse(json)
49
+ if parse_json
50
+ # XXX work-around
51
+ # fluentd seems to escape json value excessively
52
+ json = record[key].gsub(/\\"/, '"')
53
+ hash = JSON.parse(json)
54
+ else
55
+ hash = record[key]
56
+ end
52
57
  rescue JSON::ParserError
53
58
  return flattened
54
59
  end
@@ -37,6 +37,21 @@ class FlattenOutputTest < Test::Unit::TestCase
37
37
  assert_equal /^test\./, d2.instance.remove_tag_prefix
38
38
  assert_equal 'value_for_flat_key', d2.instance.inner_key
39
39
 
40
+ # when `parse_json` is false
41
+ d3 = create_driver(%[
42
+ key foo
43
+ add_tag_prefix flattened.
44
+ remove_tag_prefix test.
45
+ inner_key value_for_flat_key
46
+ parse_json false
47
+ ])
48
+
49
+ assert_equal 'foo', d3.instance.key
50
+ assert_equal 'flattened.', d3.instance.add_tag_prefix
51
+ assert_equal /^test\./, d3.instance.remove_tag_prefix
52
+ assert_equal 'value_for_flat_key', d3.instance.inner_key
53
+ assert_equal false, d3.instance.parse_json
54
+
40
55
  # when mandatory keys not set
41
56
  assert_raise(Fluent::ConfigError) do
42
57
  create_driver(%[
@@ -67,30 +82,64 @@ class FlattenOutputTest < Test::Unit::TestCase
67
82
  end
68
83
 
69
84
  def test_emit
70
- d = create_driver
85
+ # test1 default config
86
+ d1 = create_driver
87
+
88
+ d1.run do
89
+ d1.emit( 'foo' => '{"bar" : "baz"}', 'hoge' => 'fuga' )
90
+ d1.emit( 'foo' => '{"bar" : {"qux" : "quux", "hoe" : "poe" }, "baz" : "bazz" }', 'hoge' => 'fuga' )
91
+ end
92
+ emits1 = d1.emits
93
+
94
+ assert_equal 4, emits1.count
95
+
96
+ # ["flattened.foo.bar", 1354689632, {"value"=>"baz"}]
97
+ assert_equal 'flattened.foo.bar', emits1[0][0]
98
+ assert_equal 'baz', emits1[0][2]['value']
99
+
100
+ # ["flattened.foo.bar.qux", 1354689632, {"value"=>"quux"}]
101
+ assert_equal 'flattened.foo.bar.qux', emits1[1][0]
102
+ assert_equal 'quux', emits1[1][2]['value']
103
+
104
+ # ["flattened.foo.bar.hoe", 1354689632, {"value"=>"poe"}]
105
+ assert_equal 'flattened.foo.bar.hoe', emits1[2][0]
106
+ assert_equal 'poe', emits1[2][2]['value']
107
+
108
+ # ["flattened.foo.bar.baz", 1354689632, {"value"=>"bazz"}]
109
+ assert_equal 'flattened.foo.baz', emits1[3][0]
110
+ assert_equal 'bazz', emits1[3][2]['value']
71
111
 
72
- d.run do
73
- d.emit( 'foo' => '{"bar" : "baz"}', 'hoge' => 'fuga' )
74
- d.emit( 'foo' => '{"bar" : {"qux" : "quux", "hoe" : "poe" }, "baz" : "bazz" }', 'hoge' => 'fuga' )
112
+ # test2 parse_json is set false
113
+ d2 = create_driver(%[
114
+ key foo
115
+ add_tag_prefix flattened.
116
+ remove_tag_prefix test.
117
+ parse_json false
118
+ ])
119
+
120
+ d2.run do
121
+ d2.emit( 'foo' => {'bar' => 'baz'}, 'hoge' => 'fuga' )
122
+ d2.emit( 'foo' => {'bar' => {'qux' => 'quux', 'hoe' => 'poe' }, 'baz' => 'bazz' }, 'hoge' => 'fuga' )
75
123
  end
76
- emits = d.emits
124
+ emits2 = d2.emits
77
125
 
78
- assert_equal 4, emits.count
126
+ assert_equal 4, emits2.count
79
127
 
80
128
  # ["flattened.foo.bar", 1354689632, {"value"=>"baz"}]
81
- assert_equal 'flattened.foo.bar', emits[0][0]
82
- assert_equal 'baz', emits[0][2]['value']
129
+ assert_equal 'flattened.foo.bar', emits2[0][0]
130
+ assert_equal 'baz', emits2[0][2]['value']
83
131
 
84
132
  # ["flattened.foo.bar.qux", 1354689632, {"value"=>"quux"}]
85
- assert_equal 'flattened.foo.bar.qux', emits[1][0]
86
- assert_equal 'quux', emits[1][2]['value']
133
+ assert_equal 'flattened.foo.bar.qux', emits2[1][0]
134
+ assert_equal 'quux', emits2[1][2]['value']
87
135
 
88
136
  # ["flattened.foo.bar.hoe", 1354689632, {"value"=>"poe"}]
89
- assert_equal 'flattened.foo.bar.hoe', emits[2][0]
90
- assert_equal 'poe', emits[2][2]['value']
137
+ assert_equal 'flattened.foo.bar.hoe', emits2[2][0]
138
+ assert_equal 'poe', emits2[2][2]['value']
91
139
 
92
140
  # ["flattened.foo.bar.baz", 1354689632, {"value"=>"bazz"}]
93
- assert_equal 'flattened.foo.baz', emits[3][0]
94
- assert_equal 'bazz', emits[3][2]['value']
141
+ assert_equal 'flattened.foo.baz', emits2[3][0]
142
+ assert_equal 'bazz', emits2[3][2]['value']
143
+
95
144
  end
96
145
  end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-flatten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kentaro Kuribayashi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-10 00:00:00.000000000 Z
11
+ date: 2013-06-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: fluentd
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fluentd
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Fluentd plugin to extract values for nested key paths and re-emit them
@@ -78,27 +71,26 @@ files:
78
71
  - test/test_helper.rb
79
72
  homepage: http://github.com/kentaro/fluent-plugin-flatten
80
73
  licenses: []
74
+ metadata: {}
81
75
  post_install_message:
82
76
  rdoc_options: []
83
77
  require_paths:
84
78
  - lib
85
79
  required_ruby_version: !ruby/object:Gem::Requirement
86
- none: false
87
80
  requirements:
88
- - - ! '>='
81
+ - - '>='
89
82
  - !ruby/object:Gem::Version
90
83
  version: '0'
91
84
  required_rubygems_version: !ruby/object:Gem::Requirement
92
- none: false
93
85
  requirements:
94
- - - ! '>='
86
+ - - '>='
95
87
  - !ruby/object:Gem::Version
96
88
  version: '0'
97
89
  requirements: []
98
90
  rubyforge_project:
99
- rubygems_version: 1.8.23
91
+ rubygems_version: 2.0.2
100
92
  signing_key:
101
- specification_version: 3
93
+ specification_version: 4
102
94
  summary: Fluentd plugin to extract values for nested key paths and re-emit them as
103
95
  flat tag/record pairs.
104
96
  test_files: