logstash-filter-esquerystring 1.2.0 → 1.3.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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0bc48d1cf1d787b54b63d96f00195787056a2cc8
|
4
|
+
data.tar.gz: ff744149a3c8702e851bc720505ab36481f30eae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67f92b43df01f7a3bf3a9c94f8a23eb03ae00237233e537681669df95696eb1991c4707a9ab023891fad9dc549cc574f45938f6d5c541fac0c35f00962c9c935
|
7
|
+
data.tar.gz: 9e65a1a31e2f3f4c4b85850ec73094698b91cf2a7909dd44ce3bab16f8632067f2b308dac981d0629898177e2a575af018b3e54a3f1f24f49f44fe80220a3186
|
@@ -7,6 +7,8 @@ class LogStash::Filters::Esquerystring < LogStash::Filters::Base
|
|
7
7
|
|
8
8
|
config :source, :validate => :array, :required => true
|
9
9
|
config :target, :validate => :string, :required => true
|
10
|
+
config :maxlength, :validate => :number, :default => 4096, :required => false
|
11
|
+
config :length_autofix, :validate => :boolean, :default => false, :required => false
|
10
12
|
|
11
13
|
public
|
12
14
|
def register
|
@@ -27,8 +29,23 @@ class LogStash::Filters::Esquerystring < LogStash::Filters::Base
|
|
27
29
|
end
|
28
30
|
|
29
31
|
return if values.length == 0
|
30
|
-
values =
|
31
|
-
|
32
|
+
values = values.uniq.map { |x| '"' + x + '"' }
|
33
|
+
values_str = "(" + values.join(" OR ") + ")"
|
34
|
+
if values_str.length > @maxlength
|
35
|
+
msg = "Produced too long query string (>#{@maxlength}): #{values_str}"
|
36
|
+
if @length_autofix
|
37
|
+
while values_str.length > @maxlength
|
38
|
+
values.pop
|
39
|
+
values_str = "(" + values.join(" OR ") + ")"
|
40
|
+
end
|
41
|
+
@logger.warn(msg + "; Autofixed to: #{values_str}")
|
42
|
+
event.set(@target, values_str)
|
43
|
+
else
|
44
|
+
@logger.error(msg)
|
45
|
+
end
|
46
|
+
else
|
47
|
+
event.set(@target, values_str)
|
48
|
+
end
|
32
49
|
end # def filter
|
33
50
|
|
34
51
|
end # class LogStash::Filters::Esquerystring
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-esquerystring'
|
4
|
-
s.version = '1.
|
4
|
+
s.version = '1.3.0'
|
5
5
|
s.licenses = ['Apache-2.0']
|
6
6
|
s.summary = "This filter converts values of source field to elasticsearch query string"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -94,4 +94,38 @@ describe LogStash::Filters::Esquerystring do
|
|
94
94
|
insist { subject.get("dst") } == '("arg1" OR "arg2")'
|
95
95
|
end
|
96
96
|
end
|
97
|
+
|
98
|
+
describe "esquerystring string with too long array and without autofix" do
|
99
|
+
config <<-CONFIG
|
100
|
+
filter {
|
101
|
+
esquerystring {
|
102
|
+
source => "src"
|
103
|
+
target => "dst"
|
104
|
+
maxlength => 20
|
105
|
+
length_autofix => false
|
106
|
+
}
|
107
|
+
}
|
108
|
+
CONFIG
|
109
|
+
|
110
|
+
sample("src" => ["arg1", "arg2", "arg3", "arg4"]) do
|
111
|
+
insist { subject.get("dst") } == nil
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "esquerystring string with too long array and with autofix" do
|
116
|
+
config <<-CONFIG
|
117
|
+
filter {
|
118
|
+
esquerystring {
|
119
|
+
source => "src"
|
120
|
+
target => "dst"
|
121
|
+
maxlength => 20
|
122
|
+
length_autofix => true
|
123
|
+
}
|
124
|
+
}
|
125
|
+
CONFIG
|
126
|
+
|
127
|
+
sample("src" => ["arg1", "arg2", "arg3", "arg4"]) do
|
128
|
+
insist { subject.get("dst") } == '("arg1" OR "arg2")'
|
129
|
+
end
|
130
|
+
end
|
97
131
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-esquerystring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
84
|
version: '0'
|
85
85
|
requirements: []
|
86
86
|
rubyforge_project:
|
87
|
-
rubygems_version: 2.6.
|
87
|
+
rubygems_version: 2.6.14
|
88
88
|
signing_key:
|
89
89
|
specification_version: 4
|
90
90
|
summary: This filter converts values of source field to elasticsearch query string
|