fluent-plugin-filter-list 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +44 -0
- data/.travis.yml +6 -1
- data/Gemfile +4 -1
- data/Rakefile +4 -1
- data/fluent-plugin-out_filter_list.gemspec +18 -16
- data/lib/aho_corasick.rb +3 -5
- data/lib/fluent/plugin/filter_filter_list.rb +4 -3
- data/lib/fluent/plugin/out_filter_list.rb +18 -23
- data/lib/fluent/plugin/out_filter_list/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d59e0c9511bee9b07d913940698e10474ff94f71
|
4
|
+
data.tar.gz: b40e7e4c5831ccdce088917b3bd3609cbbf83f2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d83ac5416fd197ea9c556174eebc306441edc3ebe45d4b3b156c3eabe4b3db6da5efd8f3d1f284ed5c84c97980bb40e38be62448e1e013907514bbedc1d6719e
|
7
|
+
data.tar.gz: 6b8fd6b97f2f30fbc98e5d95056fe56e9bb2558f353039af335cba9f090183fa7ef05c756406992f8f3ebe79d40578ce4309c35ce51754b67ce9a893d9ab246a
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
Metrics/LineLength:
|
2
|
+
Max: 160
|
3
|
+
Style/StringLiterals:
|
4
|
+
Enabled: false
|
5
|
+
Metrics/MethodLength:
|
6
|
+
Max: 15
|
7
|
+
Style/Documentation:
|
8
|
+
Enabled: false
|
9
|
+
Style/FrozenStringLiteralComment:
|
10
|
+
Enabled: false
|
11
|
+
Style/MutableConstant:
|
12
|
+
Enabled: false
|
13
|
+
Metrics/AbcSize:
|
14
|
+
Max: 25
|
15
|
+
Metrics/BlockLength:
|
16
|
+
Exclude:
|
17
|
+
- 'Rakefile'
|
18
|
+
- '**/*.rake'
|
19
|
+
- 'spec/**/*.rb'
|
20
|
+
- 'Gemfile'
|
21
|
+
- 'Guardfile'
|
22
|
+
- 'config/routes.rb'
|
23
|
+
- 'config/routes/**/*.rb'
|
24
|
+
- '*.gemspec'
|
25
|
+
Metrics/CyclomaticComplexity:
|
26
|
+
Max: 10
|
27
|
+
Metrics/PerceivedComplexity:
|
28
|
+
Max: 10
|
29
|
+
Style/GlobalVars:
|
30
|
+
Exclude:
|
31
|
+
- 'test/test_helper.rb'
|
32
|
+
Style/MethodMissing:
|
33
|
+
Exclude:
|
34
|
+
- 'test/test_helper.rb'
|
35
|
+
Style/TernaryParentheses:
|
36
|
+
Enabled: false
|
37
|
+
Style/BlockDelimiters:
|
38
|
+
AutoCorrect: false
|
39
|
+
Style/BlockDelimiters:
|
40
|
+
AutoCorrect: false
|
41
|
+
Style/BracesAroundHashParameters:
|
42
|
+
Enabled: false
|
43
|
+
Layout/IndentHash:
|
44
|
+
EnforcedStyle: consistent
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rake/testtask'
|
3
|
+
require 'rubocop/rake_task'
|
3
4
|
|
4
5
|
Rake::TestTask.new(:test) do |t|
|
5
6
|
t.libs << 'test' << 'lib'
|
@@ -7,4 +8,6 @@ Rake::TestTask.new(:test) do |t|
|
|
7
8
|
t.verbose = true
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
+
RuboCop::RakeTask.new
|
12
|
+
|
13
|
+
task default: %w[rubocop test]
|
@@ -1,29 +1,31 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
6
|
+
require 'fluent/plugin/out_filter_list/version'
|
5
7
|
|
6
8
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
9
|
+
spec.name = 'fluent-plugin-filter-list'
|
8
10
|
spec.version = Fluent::OutFilterList::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
+
spec.authors = ['Shun Yanaura']
|
12
|
+
spec.email = ['metroplexity@gmail.com']
|
11
13
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
14
|
+
spec.summary = 'A fluentd output plugin to filter keywords from messages'
|
15
|
+
spec.description = 'A fluentd output plugin to filter keywords from messages'
|
16
|
+
spec.homepage = 'https://github.com/yanana/fluent-plugin-filter-list'
|
17
|
+
spec.license = 'MIT'
|
16
18
|
|
17
19
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
20
|
f.match(%r{^(test|spec|features)/})
|
19
21
|
end
|
20
|
-
spec.bindir =
|
22
|
+
spec.bindir = 'exe'
|
21
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
-
spec.require_paths = [
|
24
|
+
spec.require_paths = ['lib']
|
23
25
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_runtime_dependency
|
26
|
+
spec.add_development_dependency 'bundler', '~> 1.15'
|
27
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
28
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
29
|
+
spec.add_development_dependency 'test-unit', '~> 3.2'
|
30
|
+
spec.add_runtime_dependency 'fluentd', '~> 0.12', '>= 0.12.0'
|
29
31
|
end
|
data/lib/aho_corasick.rb
CHANGED
@@ -7,9 +7,9 @@ module Matchers
|
|
7
7
|
@trie = Trie.new patterns
|
8
8
|
end
|
9
9
|
|
10
|
-
def matches?(
|
10
|
+
def matches?(text)
|
11
11
|
node = @trie.root
|
12
|
-
|
12
|
+
text.to_s.split('').each do |char|
|
13
13
|
node = node.failure while node.children[char].nil? # Follow failure if it exists in case pattern doesn't match
|
14
14
|
node = node.children[char]
|
15
15
|
return true unless node.output.nil?
|
@@ -33,9 +33,7 @@ module Matchers
|
|
33
33
|
current_node = @root
|
34
34
|
pattern.split('').each_with_index do |char, i|
|
35
35
|
current_node = current_node.insert(char)
|
36
|
-
if i == pattern.length - 1
|
37
|
-
current_node.output = pattern
|
38
|
-
end
|
36
|
+
current_node.output = pattern if i == pattern.length - 1
|
39
37
|
end
|
40
38
|
end
|
41
39
|
|
@@ -7,8 +7,8 @@ module Fluent
|
|
7
7
|
|
8
8
|
Plugin.register_filter('filter_list', self)
|
9
9
|
|
10
|
-
config_param :key_to_filter, :string, :
|
11
|
-
config_param :patterns_file_path, :string, :
|
10
|
+
config_param :key_to_filter, :string, default: nil
|
11
|
+
config_param :patterns_file_path, :string, default: ''
|
12
12
|
|
13
13
|
def configure(conf)
|
14
14
|
super
|
@@ -18,7 +18,8 @@ module Fluent
|
|
18
18
|
|
19
19
|
def filter(_tag, _time, record)
|
20
20
|
target = record[@key_to_filter]
|
21
|
-
target && @matcher.matches?(target)
|
21
|
+
return nil if target && @matcher.matches?(target)
|
22
|
+
record
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -7,17 +7,17 @@ module Fluent
|
|
7
7
|
|
8
8
|
Plugin.register_output('filter_list', self)
|
9
9
|
|
10
|
-
config_param :key_to_filter, :string, :
|
11
|
-
config_param :patterns_file_path, :string, :
|
10
|
+
config_param :key_to_filter, :string, default: nil
|
11
|
+
config_param :patterns_file_path, :string, default: ''
|
12
12
|
|
13
13
|
config_section :retag, required: true, multi: false do
|
14
|
-
config_param :tag, :string, :
|
15
|
-
config_param :add_prefix, :string, :
|
14
|
+
config_param :tag, :string, default: nil
|
15
|
+
config_param :add_prefix, :string, default: nil
|
16
16
|
end
|
17
17
|
|
18
18
|
config_section :retag_filtered, param_name: :retag_for_filtered, required: false, multi: false do
|
19
|
-
config_param :tag, :string, :
|
20
|
-
config_param :add_prefix, :string, :
|
19
|
+
config_param :tag, :string, default: nil
|
20
|
+
config_param :add_prefix, :string, default: nil
|
21
21
|
end
|
22
22
|
|
23
23
|
def initialize
|
@@ -25,15 +25,15 @@ module Fluent
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def validate(retag)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
return unless retag
|
29
|
+
raise Fluent::ConfigError, "missing tag and add_prefix" unless retag.tag || retag.add_prefix
|
30
|
+
raise Fluent::ConfigError, "tag and add_prefix are mutually exclusive" if retag.tag && retag.add_prefix
|
31
|
+
end
|
32
|
+
|
33
|
+
def configure_prefixes
|
34
|
+
@prefix_for_filtered_tag = @retag_for_filtered.add_prefix + '.' if @retag_for_filtered && @retag_for_filtered.add_prefix
|
35
|
+
@prefix_for_filtered_tag = @retag_for_filtered && @retag_for_filtered.add_prefix ? @retag_for_filtered.add_prefix + '.' : ''
|
36
|
+
@prefix = @retag && @retag.add_prefix ? @retag.add_prefix + '.' : ''
|
37
37
|
end
|
38
38
|
|
39
39
|
def configure(conf)
|
@@ -41,16 +41,11 @@ module Fluent
|
|
41
41
|
[@retag, @retag_for_filtered].each { |c| validate c }
|
42
42
|
patterns = @patterns_file_path.empty? ? [] : File.readlines(@patterns_file_path).map(&:chomp).reject(&:empty?)
|
43
43
|
@matcher = ACMatcher.new(patterns)
|
44
|
-
|
45
|
-
|
46
|
-
end
|
47
|
-
if @retag && @retag.add_prefix
|
48
|
-
@prefix = @retag.add_prefix + "."
|
49
|
-
end
|
50
|
-
log.debug "prefix: #{@prefix}, prefix_for_filtered_tag: #{@prefix_for_filtered_tag}"
|
44
|
+
configure_prefixes
|
45
|
+
log.debug "prefix: #{@prefix}, prefix_for_filtered_tag: #{@prefix_for_filtered_tag || ''}"
|
51
46
|
end
|
52
47
|
|
53
|
-
def emit(tag, es,
|
48
|
+
def emit(tag, es, _chain)
|
54
49
|
es.each do |time, record|
|
55
50
|
target = record[@key_to_filter]
|
56
51
|
log.debug "target: #{target}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-filter-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shun Yanaura
|
@@ -94,6 +94,7 @@ extensions: []
|
|
94
94
|
extra_rdoc_files: []
|
95
95
|
files:
|
96
96
|
- ".gitignore"
|
97
|
+
- ".rubocop.yml"
|
97
98
|
- ".travis.yml"
|
98
99
|
- CODE_OF_CONDUCT.md
|
99
100
|
- Gemfile
|