fluent-plugin-record-modifier 2.1.1 → 2.2.0

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
  SHA256:
3
- metadata.gz: 5223ce121e04b41b661a2d575a7067f69295ea5d665656cb37a23acbd71d3624
4
- data.tar.gz: 00e6c78cf07e354ab0a0d77d42a5bc00f782a1bcb9ca56899440ac75dbd6f4b1
3
+ metadata.gz: 929d54c71c0ef86c544ed2797b68f8cb77439ae848ba10d1b95139a5141fa532
4
+ data.tar.gz: ff1966ae5435bdc0a013e375f5c6a7e25d05c3a0c31966637befe0edda4d2f4d
5
5
  SHA512:
6
- metadata.gz: 79597158486f6da9646479758d981afc494da860653006d93428abf9d5c211008f60339ca39d238a04b77f2aadd38f459f70b4dccb46c23618614cbc75795894
7
- data.tar.gz: 8912416c324b79f0d4e4e6d29f8625105e1c983492e509a56484a81d5cb0c72b6270a915f087b4946d5d522b1817133a99341b9a91c241de01c4f7c501f3310b
6
+ metadata.gz: efa42ddd9e8e6bbc02d69a81377356e47a44a02bdbcc18cfbbfa10cc043dd85f90127d92f359f827b6f72b5f5b27a4fb805723e17a55b89f9c11eef9c4ca2f33
7
+ data.tar.gz: ff225acaaa97faa6223d1fe266a1be717a457eb9941db840a080c1c0a89f57deceb50808351dee4a9028c1a7630997a680743a4041508987ed114c36ec8dad6f
@@ -5,12 +5,19 @@ on:
5
5
  jobs:
6
6
  build:
7
7
  runs-on: ${{ matrix.os }}
8
+ continue-on-error: ${{ matrix.experimental }}
8
9
  strategy:
9
10
  fail-fast: false
10
11
  matrix:
11
- ruby: ['2.6', '2.7', '3.0', '3.1']
12
+ ruby: ['2.7', '3.0', '3.1', '3.2']
12
13
  os:
13
14
  - ubuntu-latest
15
+ experimental: [false]
16
+ include:
17
+ - ruby-version: head
18
+ os: ubuntu-latest
19
+ experimental: true
20
+
14
21
  name: Ruby ${{ matrix.ruby }} unit testing on ${{ matrix.os }}
15
22
  steps:
16
23
  - uses: actions/checkout@v2
data/README.md CHANGED
@@ -124,6 +124,8 @@ then you got new record like below:
124
124
  {"key3":"bar"}
125
125
  ```
126
126
 
127
+ Since v2.2.0, `remove_keys` supports nested key delete via [`record_accessor` syntax](https://docs.fluentd.org/plugin-helper-overview/api-plugin-helper-record_accessor).
128
+
127
129
  ### whitelist_keys
128
130
 
129
131
  If you want to handle the set of explicitly specified keys, you can use `whitelist_keys` of this plugin. It's exclusive with `remove_keys`.
@@ -202,7 +204,7 @@ If you need own complex logic in filter, writing filter plugin is better. But if
202
204
  <record>
203
205
  _dummy_ ${if record.has_key?('foo'); record['bar'] = 'Hi!'; end; nil}
204
206
  </record>
205
- </filter>}
207
+ </filter>
206
208
  ```
207
209
 
208
210
  ### record_modifier output
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.2.0
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  gem.require_paths = ['lib']
18
18
 
19
- gem.add_dependency "fluentd", [">= 1.0", "< 2"]
19
+ gem.add_dependency "fluentd", [">= 1.1", "< 2"]
20
20
  gem.add_development_dependency "rake", ">= 0.9.2"
21
- gem.add_development_dependency("test-unit", ["~> 3.3"])
21
+ gem.add_development_dependency("test-unit", ["~> 3.4.0"])
22
22
  end
@@ -4,6 +4,8 @@ module Fluent
4
4
  class Plugin::RecordModifierFilter < Plugin::Filter
5
5
  Fluent::Plugin.register_filter('record_modifier', self)
6
6
 
7
+ helpers :record_accessor
8
+
7
9
  config_param :prepare_value, :string, default: nil,
8
10
  desc: <<-DESC
9
11
  Prepare values for filtering in configure phase. Prepared values can be used in <record>.
@@ -17,7 +19,7 @@ e.g. handling char encoding correctly.
17
19
  In more detail, please refer this section:
18
20
  https://github.com/repeatedly/fluent-plugin-record-modifier#char_encoding.
19
21
  DESC
20
- config_param :remove_keys, :string, default: nil,
22
+ config_param :remove_keys, :array, default: nil,
21
23
  desc: <<-DESC
22
24
  The logs include needless record keys in some cases.
23
25
  You can remove it by using `remove_keys` parameter.
@@ -80,7 +82,9 @@ DESC
80
82
  if @remove_keys and @whitelist_keys
81
83
  raise Fluent::ConfigError, "remove_keys and whitelist_keys are exclusive with each other."
82
84
  elsif @remove_keys
83
- @remove_keys = @remove_keys.split(',').map(&:strip)
85
+ @remove_keys = @remove_keys.map { |key|
86
+ record_accessor_create(key)
87
+ }
84
88
  elsif @whitelist_keys
85
89
  @whitelist_keys = @whitelist_keys.split(',').map(&:strip)
86
90
  @whitelist_keys.concat(@map.keys).uniq!
@@ -98,8 +102,8 @@ DESC
98
102
  }
99
103
 
100
104
  if @remove_keys
101
- @remove_keys.each { |v|
102
- record.delete(v)
105
+ @remove_keys.each { |ra|
106
+ ra.delete(record)
103
107
  }
104
108
  elsif @whitelist_keys
105
109
  modified = {}
@@ -114,6 +114,18 @@ class RecordModifierFilterTest < Test::Unit::TestCase
114
114
  assert_equal [{"k4" => 'v'}], d.filtered.map { |e| e.last }
115
115
  end
116
116
 
117
+ def test_remove_nested_keys
118
+ d = create_driver %[
119
+ remove_keys k1, $.kubernetes.test
120
+ ]
121
+
122
+ d.run(default_tag: @tag) do
123
+ d.feed("k1" => 'v', "kubernetes" => {"test" => 'v', "prod" => 'v'}, "k2" => 'v')
124
+ end
125
+
126
+ assert_equal [{"kubernetes" => {"prod" => 'v'}, "k2" => 'v'}], d.filtered.map { |e| e.last }
127
+ end
128
+
117
129
  def test_remove_non_whitelist_keys
118
130
  d = create_driver %[
119
131
  <record>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-record-modifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Nakagawa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-24 00:00:00.000000000 Z
11
+ date: 2023-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '1.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
@@ -50,14 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '3.3'
53
+ version: 3.4.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '3.3'
60
+ version: 3.4.0
61
61
  description: Filter plugin for modifying event record
62
62
  email: repeatedly@gmail.com
63
63
  executables: []
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
- rubygems_version: 3.3.7
98
+ rubygems_version: 3.4.1
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Filter plugin for modifying event record