fluent-plugin-record-modifier 2.1.1 → 2.2.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.
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