logstash-input-dead_letter_queue 1.1.8 → 1.1.11
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 +9 -0
- data/VERSION +1 -1
- data/lib/logstash/inputs/dead_letter_queue.rb +16 -2
- data/lib/logstash-input-dead_letter_queue_jars.rb +1 -1
- data/spec/unit/inputs/dead_letter_queue_spec.rb +28 -1
- data/spec/unit/inputs/fixtures/main/1.log +0 -0
- data/vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.11/logstash-input-dead_letter_queue-1.1.11.jar +0 -0
- metadata +5 -3
- data/vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.8/logstash-input-dead_letter_queue-1.1.8.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a9f7c1ca29e4d2e0b409b3a7f56d69b800ca1321386e9402530605224fbc64e
|
4
|
+
data.tar.gz: efc30664c8fc92365eda9e20cadffdd67123c9a80d79a04a3160dae5fcf6b33e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9da83407c607cd6977d988f3da9972ec6aba3e9383aabfef709f79f777b67a81c3d9f15f4a3fb7e7ab6e10e725bb7482b7689671851ba08e96e85b8a0337e8c9
|
7
|
+
data.tar.gz: 9bb864de1fe4c5d9d5c8a137e9977454dfcbf0d862454847ebd18cedc98451d4b3e3989a6e3bf68de65816600b424eb148e600beaea516aaea86d17a7c052f11
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 1.1.11
|
2
|
+
- Fix: pre-flight checks before creating DLQ reader [#35](https://github.com/logstash-plugins/logstash-input-dead_letter_queue/pull/35)
|
3
|
+
|
4
|
+
## 1.1.10
|
5
|
+
- Fix, avoid Logstash crash on shutdown if DLQ files weren't created [#33](https://github.com/logstash-plugins/logstash-input-dead_letter_queue/pull/33)
|
6
|
+
|
7
|
+
## 1.1.9
|
8
|
+
- Fix `@metadata` get overwritten by reestablishing metadata that stored in DLQ [#34](https://github.com/logstash-plugins/logstash-input-dead_letter_queue/pull/34)
|
9
|
+
|
1
10
|
## 1.1.8
|
2
11
|
- Update dependencies for log4j to 2.17.1
|
3
12
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.11
|
@@ -2,6 +2,8 @@ require 'logstash/namespace'
|
|
2
2
|
require 'logstash/inputs/base'
|
3
3
|
require 'logstash-input-dead_letter_queue_jars'
|
4
4
|
|
5
|
+
require 'fileutils'
|
6
|
+
|
5
7
|
# Logstash input to read events from Logstash's dead letter queue
|
6
8
|
#
|
7
9
|
# [source, sh]
|
@@ -45,7 +47,7 @@ class LogStash::Inputs::DeadLetterQueue < LogStash::Inputs::Base
|
|
45
47
|
FileUtils::mkdir_p datapath
|
46
48
|
@sincedb_path = File.join(datapath, ".sincedb_" + Digest::MD5.hexdigest(@path))
|
47
49
|
elsif File.directory?(@sincedb_path)
|
48
|
-
|
50
|
+
raise ArgumentError.new("The \"sincedb_path\" argument must point to a file, received a directory: \"#{@sincedb_path}\"")
|
49
51
|
end
|
50
52
|
|
51
53
|
dlq_path = java.nio.file.Paths.get(File.join(@path, @pipeline_id))
|
@@ -53,12 +55,24 @@ class LogStash::Inputs::DeadLetterQueue < LogStash::Inputs::Base
|
|
53
55
|
start_timestamp = @start_timestamp ? org.logstash.Timestamp.new(@start_timestamp) : nil
|
54
56
|
@inner_plugin = org.logstash.input.DeadLetterQueueInputPlugin.new(dlq_path, @commit_offsets, sincedb_path, start_timestamp)
|
55
57
|
@inner_plugin.register
|
58
|
+
|
59
|
+
if Gem::Requirement.new('< 7.0').satisfied_by?(Gem::Version.new(LOGSTASH_CORE_VERSION))
|
60
|
+
@event_creator = Proc.new do |entry|
|
61
|
+
clone = entry.event.clone
|
62
|
+
# LS 6 LogStash::Event.new accept Map not Event
|
63
|
+
event = LogStash::Event.new(clone.getData())
|
64
|
+
event.set("[@metadata]", clone.getMetadata())
|
65
|
+
event
|
66
|
+
end
|
67
|
+
else
|
68
|
+
@event_creator = -> (entry) { LogStash::Event.new(entry.event.clone) }
|
69
|
+
end
|
56
70
|
end # def register
|
57
71
|
|
58
72
|
public
|
59
73
|
def run(logstash_queue)
|
60
74
|
@inner_plugin.run do |entry|
|
61
|
-
event =
|
75
|
+
event = @event_creator.(entry)
|
62
76
|
event.set("[@metadata][dead_letter_queue][plugin_type]", entry.plugin_type)
|
63
77
|
event.set("[@metadata][dead_letter_queue][plugin_id]", entry.plugin_id)
|
64
78
|
event.set("[@metadata][dead_letter_queue][reason]", entry.reason)
|
@@ -19,8 +19,35 @@ describe LogStash::Inputs::DeadLetterQueue do
|
|
19
19
|
expect {subject.register}.to_not raise_error
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
22
|
after(:each) do
|
24
23
|
FileUtils.remove_entry_secure directory
|
25
24
|
end
|
25
|
+
|
26
|
+
context 'test with real DLQ file' do
|
27
|
+
let(:dlq_dir) { Stud::Temporary.directory }
|
28
|
+
let(:fixture_dir) { File.expand_path(File.join(File.dirname(__FILE__),"fixtures", "main")) }
|
29
|
+
let(:plugin) { LogStash::Inputs::DeadLetterQueue.new({ "path" => dlq_dir, "commit_offsets" => true }) }
|
30
|
+
let(:queue) { Queue.new }
|
31
|
+
|
32
|
+
before do
|
33
|
+
FileUtils.cp_r fixture_dir, dlq_dir
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'reserve original metadata' do
|
37
|
+
plugin.register
|
38
|
+
t = Thread.new {
|
39
|
+
begin
|
40
|
+
plugin.run(queue)
|
41
|
+
rescue java.nio.file.ClosedWatchServiceException => e
|
42
|
+
end
|
43
|
+
}
|
44
|
+
|
45
|
+
event = queue.pop
|
46
|
+
expect(event.get("[@metadata][some_key]")).to eq("some_value")
|
47
|
+
expect(event.get("[@metadata][dead_letter_queue][reason]")).to match(/Could not index event to Elasticsearch. status: 400/)
|
48
|
+
|
49
|
+
plugin.stop
|
50
|
+
t.join(1000)
|
51
|
+
end
|
52
|
+
end
|
26
53
|
end
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-dead_letter_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01
|
11
|
+
date: 2022-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,7 +79,8 @@ files:
|
|
79
79
|
- lib/logstash/inputs/dead_letter_queue.rb
|
80
80
|
- logstash-input-dead_letter_queue.gemspec
|
81
81
|
- spec/unit/inputs/dead_letter_queue_spec.rb
|
82
|
-
-
|
82
|
+
- spec/unit/inputs/fixtures/main/1.log
|
83
|
+
- vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.11/logstash-input-dead_letter_queue-1.1.11.jar
|
83
84
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
84
85
|
licenses:
|
85
86
|
- Apache License (2.0)
|
@@ -108,3 +109,4 @@ specification_version: 4
|
|
108
109
|
summary: read events from Logstash's dead letter queue
|
109
110
|
test_files:
|
110
111
|
- spec/unit/inputs/dead_letter_queue_spec.rb
|
112
|
+
- spec/unit/inputs/fixtures/main/1.log
|