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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 409103b04b24b573dff867b4a59f58dbfaad926f4fd8a390cbf08d4243b0976b
4
- data.tar.gz: a911df00dc53b67bdf4bf9f2cf4d4f321a89dd9e7eb8e8862658deaddcc305d0
3
+ metadata.gz: 9a9f7c1ca29e4d2e0b409b3a7f56d69b800ca1321386e9402530605224fbc64e
4
+ data.tar.gz: efc30664c8fc92365eda9e20cadffdd67123c9a80d79a04a3160dae5fcf6b33e
5
5
  SHA512:
6
- metadata.gz: 5b7a8789b7b9ff113a1aec644e4f8f4e32379d439dbc0ac555eb291e226ad81fc0b36aa5f14afe1ffeed3f7617a3d35a9a1123310f956cc71f7d14038c75f4eb
7
- data.tar.gz: 845256cb793ca177652719dcd588ca294a70df4575234deb71d1af619c0ce58931ae6cd6cd0ab93ad852160bedbe8e7f2ce4d541656590a3b31568c6e5b02910
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.8
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
- raise ArgumentError.new("The \"sincedb_path\" argument must point to a file, received a directory: \"#{@sincedb_path}\"")
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 = LogStash::Event.new(entry.event.toMap())
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)
@@ -1,4 +1,4 @@
1
1
  # AUTOGENERATED BY THE GRADLE SCRIPT. DO NOT EDIT.
2
2
 
3
3
  require 'jar_dependencies'
4
- require_jar('co.elastic.logstash.input', 'logstash-input-dead_letter_queue', '1.1.8')
4
+ require_jar('co.elastic.logstash.input', 'logstash-input-dead_letter_queue', '1.1.11')
@@ -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
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.8
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-05 00:00:00.000000000 Z
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
- - vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.8/logstash-input-dead_letter_queue-1.1.8.jar
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