logstash-input-gelf 3.3.1 → 3.4.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/CHANGELOG.md +6 -0
- data/lib/logstash/inputs/gelf.rb +4 -2
- data/logstash-input-gelf.gemspec +3 -3
- data/spec/inputs/gelf_spec.rb +16 -11
- metadata +20 -23
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1abbfdf0377b9939b08f7de87999036e09889ec2b6afade8bc727467850a6919
|
|
4
|
+
data.tar.gz: 50c30dd393b1acb755157320f95fca38aa5249d47c13314a043a0870fec3f869
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9b4c1ee937cd763d930754282a6c4013ae1561579e2265b535536add96d1d5c4326affab3d297c1443bd463d5dd8ddab91638db28dc1e59b98b7c93f3c5d48b4
|
|
7
|
+
data.tar.gz: 2728923a3d68e587f6fb3ce70530abdc2d0ff8e4ed84f59ca57739ab2baf6fccdfb1936de508b225fac5061147bfca5333a0d1660d42fbfb9db108675020e503
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## 3.4.0
|
|
2
|
+
- Updates the gelf dependency [#77](https://github.com/logstash-plugins/logstash-input-gelf/pull/77)
|
|
3
|
+
|
|
4
|
+
## 3.3.2
|
|
5
|
+
- Fix: avoid panic when handling very-large exponent-notation `_@timestamp` values [#71](https://github.com/logstash-plugins/logstash-input-gelf/pull/71)
|
|
6
|
+
|
|
1
7
|
## 3.3.1
|
|
2
8
|
- Fix: safely coerce the value of `_@timestamp` to avoid crashing the plugin [#67](https://github.com/logstash-plugins/logstash-input-gelf/pull/67)
|
|
3
9
|
|
data/lib/logstash/inputs/gelf.rb
CHANGED
|
@@ -226,7 +226,7 @@ class LogStash::Inputs::Gelf < LogStash::Inputs::Base
|
|
|
226
226
|
event = parse(json_gelf)
|
|
227
227
|
return if event.nil?
|
|
228
228
|
|
|
229
|
-
event.set(SOURCE_HOST_FIELD, host.
|
|
229
|
+
event.set(SOURCE_HOST_FIELD, host.encode("UTF-8"))
|
|
230
230
|
|
|
231
231
|
if (gelf_timestamp = event.get(TIMESTAMP_GELF_FIELD)).is_a?(Numeric)
|
|
232
232
|
event.timestamp = self.coerce_timestamp(gelf_timestamp)
|
|
@@ -243,7 +243,9 @@ class LogStash::Inputs::Gelf < LogStash::Inputs::Base
|
|
|
243
243
|
def self.coerce_timestamp(timestamp)
|
|
244
244
|
# prevent artificial precision from being injected by floats
|
|
245
245
|
timestamp = timestamp.rationalize if timestamp.kind_of?(Float)
|
|
246
|
-
|
|
246
|
+
|
|
247
|
+
# bug in JRuby prevents correcly parsing a BigDecimal fractional part, see https://github.com/elastic/logstash/issues/4565
|
|
248
|
+
timestamp.is_a?(BigDecimal) ? LogStash::Timestamp.at(timestamp.to_i, timestamp.frac * 1000000) : LogStash::Timestamp.at(timestamp)
|
|
247
249
|
end
|
|
248
250
|
|
|
249
251
|
def self.parse(json)
|
data/logstash-input-gelf.gemspec
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
|
|
3
3
|
s.name = 'logstash-input-gelf'
|
|
4
|
-
s.version = '3.
|
|
4
|
+
s.version = '3.4.0'
|
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
|
6
6
|
s.summary = "Reads GELF-format messages from Graylog2 as events"
|
|
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"
|
|
8
8
|
s.authors = ["Elastic"]
|
|
9
9
|
s.email = 'info@elastic.co'
|
|
10
|
-
s.homepage = "
|
|
10
|
+
s.homepage = "https://www.elastic.co/logstash"
|
|
11
11
|
s.require_paths = ["lib"]
|
|
12
12
|
|
|
13
13
|
# Files
|
|
@@ -27,6 +27,6 @@ Gem::Specification.new do |s|
|
|
|
27
27
|
s.add_runtime_dependency 'stud', '>= 0.0.22', '< 0.1.0'
|
|
28
28
|
|
|
29
29
|
s.add_development_dependency 'logstash-devutils', '>= 2.3'
|
|
30
|
-
s.add_development_dependency "gelf", ["3.
|
|
30
|
+
s.add_development_dependency "gelf", ["3.1.0"] #(MIT license)
|
|
31
31
|
s.add_development_dependency "flores"
|
|
32
32
|
end
|
data/spec/inputs/gelf_spec.rb
CHANGED
|
@@ -106,7 +106,7 @@ describe LogStash::Inputs::Gelf do
|
|
|
106
106
|
let(:port) { 12210 }
|
|
107
107
|
|
|
108
108
|
it "should be correctly processed" do
|
|
109
|
-
gelfclient.notify!("short_message" => "msg1", "_@timestamp" => BigDecimal
|
|
109
|
+
gelfclient.notify!("short_message" => "msg1", "_@timestamp" => BigDecimal("946702800.1"))
|
|
110
110
|
gelfclient.notify!("short_message" => "msg2")
|
|
111
111
|
|
|
112
112
|
e = queue.pop
|
|
@@ -176,21 +176,21 @@ describe LogStash::Inputs::Gelf do
|
|
|
176
176
|
|
|
177
177
|
context "BigDecimal numeric values" do
|
|
178
178
|
it "should coerce and preserve millisec precision in iso8601" do
|
|
179
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
180
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
181
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
179
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.1"))).to be_a_logstash_timestamp_equivalent_to("2000-01-01T05:00:00.100Z")
|
|
180
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.12"))).to be_a_logstash_timestamp_equivalent_to("2000-01-01T05:00:00.120Z")
|
|
181
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.123"))).to be_a_logstash_timestamp_equivalent_to("2000-01-01T05:00:00.123Z")
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
it "should coerce and preserve usec precision" do
|
|
185
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
186
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
187
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
185
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.1")).usec).to eq(100000)
|
|
186
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.12")).usec).to eq(120000)
|
|
187
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.123")).usec).to eq(123000)
|
|
188
188
|
|
|
189
189
|
# since Java Timestamp in 2.3+ relies on JodaTime which supports only millisec precision
|
|
190
190
|
# the usec method will only be precise up to millisec.
|
|
191
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
192
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
193
|
-
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal
|
|
191
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.1234")).usec).to be_within(1000).of(123400)
|
|
192
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.12345")).usec).to be_within(1000).of(123450)
|
|
193
|
+
expect(LogStash::Inputs::Gelf.coerce_timestamp(BigDecimal("946702800.123456")).usec).to be_within(1000).of(123456)
|
|
194
194
|
end
|
|
195
195
|
end
|
|
196
196
|
end
|
|
@@ -206,7 +206,12 @@ describe LogStash::Inputs::Gelf do
|
|
|
206
206
|
|
|
207
207
|
it "should coerce float numeric value and preserve milliseconds precision in iso8601" do
|
|
208
208
|
event = LogStash::Inputs::Gelf.new_event("{\"timestamp\":946702800.123}", "dummy")
|
|
209
|
-
expect(event.timestamp
|
|
209
|
+
expect(event.timestamp).to be_a_logstash_timestamp_equivalent_to("2000-01-01T05:00:00.123Z")
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
it "should coerce exponent-notation timestamps" do
|
|
213
|
+
event = LogStash::Inputs::Gelf.new_event("{\"timestamp\":1.660873462488E13}", "dummy")
|
|
214
|
+
expect(event.timestamp).to be_a_logstash_timestamp_equivalent_to("+528279-11-06T19:48:00Z")
|
|
210
215
|
end
|
|
211
216
|
|
|
212
217
|
it "should coerce float numeric value and preserve usec precision" do
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-input-gelf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-03-26 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: logstash-core-plugin-api
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
@@ -19,9 +19,8 @@ dependencies:
|
|
|
19
19
|
- - "<="
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: '2.99'
|
|
22
|
-
name: logstash-core-plugin-api
|
|
23
|
-
prerelease: false
|
|
24
22
|
type: :runtime
|
|
23
|
+
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
@@ -31,34 +30,35 @@ dependencies:
|
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
31
|
version: '2.99'
|
|
33
32
|
- !ruby/object:Gem::Dependency
|
|
33
|
+
name: gelfd2
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
35
35
|
requirements:
|
|
36
36
|
- - '='
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
38
|
version: 0.4.1
|
|
39
|
-
name: gelfd2
|
|
40
|
-
prerelease: false
|
|
41
39
|
type: :runtime
|
|
40
|
+
prerelease: false
|
|
42
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
42
|
requirements:
|
|
44
43
|
- - '='
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
45
|
version: 0.4.1
|
|
47
46
|
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: logstash-codec-plain
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
50
|
- - ">="
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
52
|
version: '0'
|
|
53
|
-
name: logstash-codec-plain
|
|
54
|
-
prerelease: false
|
|
55
53
|
type: :runtime
|
|
54
|
+
prerelease: false
|
|
56
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
56
|
requirements:
|
|
58
57
|
- - ">="
|
|
59
58
|
- !ruby/object:Gem::Version
|
|
60
59
|
version: '0'
|
|
61
60
|
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: stud
|
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
|
63
63
|
requirements:
|
|
64
64
|
- - ">="
|
|
@@ -67,9 +67,8 @@ dependencies:
|
|
|
67
67
|
- - "<"
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: 0.1.0
|
|
70
|
-
name: stud
|
|
71
|
-
prerelease: false
|
|
72
70
|
type: :runtime
|
|
71
|
+
prerelease: false
|
|
73
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
74
73
|
requirements:
|
|
75
74
|
- - ">="
|
|
@@ -79,42 +78,42 @@ dependencies:
|
|
|
79
78
|
- !ruby/object:Gem::Version
|
|
80
79
|
version: 0.1.0
|
|
81
80
|
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: logstash-devutils
|
|
82
82
|
requirement: !ruby/object:Gem::Requirement
|
|
83
83
|
requirements:
|
|
84
84
|
- - ">="
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
86
|
version: '2.3'
|
|
87
|
-
name: logstash-devutils
|
|
88
|
-
prerelease: false
|
|
89
87
|
type: :development
|
|
88
|
+
prerelease: false
|
|
90
89
|
version_requirements: !ruby/object:Gem::Requirement
|
|
91
90
|
requirements:
|
|
92
91
|
- - ">="
|
|
93
92
|
- !ruby/object:Gem::Version
|
|
94
93
|
version: '2.3'
|
|
95
94
|
- !ruby/object:Gem::Dependency
|
|
95
|
+
name: gelf
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
|
97
97
|
requirements:
|
|
98
98
|
- - '='
|
|
99
99
|
- !ruby/object:Gem::Version
|
|
100
|
-
version: 3.
|
|
101
|
-
name: gelf
|
|
102
|
-
prerelease: false
|
|
100
|
+
version: 3.1.0
|
|
103
101
|
type: :development
|
|
102
|
+
prerelease: false
|
|
104
103
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
104
|
requirements:
|
|
106
105
|
- - '='
|
|
107
106
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: 3.
|
|
107
|
+
version: 3.1.0
|
|
109
108
|
- !ruby/object:Gem::Dependency
|
|
109
|
+
name: flores
|
|
110
110
|
requirement: !ruby/object:Gem::Requirement
|
|
111
111
|
requirements:
|
|
112
112
|
- - ">="
|
|
113
113
|
- !ruby/object:Gem::Version
|
|
114
114
|
version: '0'
|
|
115
|
-
name: flores
|
|
116
|
-
prerelease: false
|
|
117
115
|
type: :development
|
|
116
|
+
prerelease: false
|
|
118
117
|
version_requirements: !ruby/object:Gem::Requirement
|
|
119
118
|
requirements:
|
|
120
119
|
- - ">="
|
|
@@ -139,13 +138,12 @@ files:
|
|
|
139
138
|
- logstash-input-gelf.gemspec
|
|
140
139
|
- spec/inputs/gelf_spec.rb
|
|
141
140
|
- spec/support/helpers.rb
|
|
142
|
-
homepage:
|
|
141
|
+
homepage: https://www.elastic.co/logstash
|
|
143
142
|
licenses:
|
|
144
143
|
- Apache License (2.0)
|
|
145
144
|
metadata:
|
|
146
145
|
logstash_plugin: 'true'
|
|
147
146
|
logstash_group: input
|
|
148
|
-
post_install_message:
|
|
149
147
|
rdoc_options: []
|
|
150
148
|
require_paths:
|
|
151
149
|
- lib
|
|
@@ -160,8 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
160
158
|
- !ruby/object:Gem::Version
|
|
161
159
|
version: '0'
|
|
162
160
|
requirements: []
|
|
163
|
-
rubygems_version: 3.
|
|
164
|
-
signing_key:
|
|
161
|
+
rubygems_version: 3.6.3
|
|
165
162
|
specification_version: 4
|
|
166
163
|
summary: Reads GELF-format messages from Graylog2 as events
|
|
167
164
|
test_files:
|