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 +4 -4
- data/.github/workflows/linux.yml +8 -1
- data/README.md +3 -1
- data/VERSION +1 -1
- data/fluent-plugin-record-modifier.gemspec +2 -2
- data/lib/fluent/plugin/filter_record_modifier.rb +8 -4
- data/test/test_filter_record_modifier.rb +12 -0
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 929d54c71c0ef86c544ed2797b68f8cb77439ae848ba10d1b95139a5141fa532
|
|
4
|
+
data.tar.gz: ff1966ae5435bdc0a013e375f5c6a7e25d05c3a0c31966637befe0edda4d2f4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: efa42ddd9e8e6bbc02d69a81377356e47a44a02bdbcc18cfbbfa10cc043dd85f90127d92f359f827b6f72b5f5b27a4fb805723e17a55b89f9c11eef9c4ca2f33
|
|
7
|
+
data.tar.gz: ff225acaaa97faa6223d1fe266a1be717a457eb9941db840a080c1c0a89f57deceb50808351dee4a9028c1a7630997a680743a4041508987ed114c36ec8dad6f
|
data/.github/workflows/linux.yml
CHANGED
|
@@ -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.
|
|
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
|
+
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.
|
|
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.
|
|
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, :
|
|
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.
|
|
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 { |
|
|
102
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
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.
|
|
98
|
+
rubygems_version: 3.4.1
|
|
99
99
|
signing_key:
|
|
100
100
|
specification_version: 4
|
|
101
101
|
summary: Filter plugin for modifying event record
|