logstash-input-sqs_s3 1.1.9 → 1.1.10
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 +3 -0
- data/lib/logstash/inputs/sqs_s3.rb +30 -1
- data/logstash-input-sqs_s3.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 401697fc19ae1f091396735b9fda10659d924359dcb055037c056f3dd3f21026
|
4
|
+
data.tar.gz: 1f58ee79c752ce0afabc25707db169ccd373703df2db48965fc425aa6eb70158
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9426be0fce6d9b646d7546e9a7012cf997f81e253b173424dbc7936970cd395af1fb56e397b5961fa9f42b1182607408a94601a02a82089798fce25fc46a5fe6
|
7
|
+
data.tar.gz: 8f82ff8157575de0607b2e2bfb592cbe2d95452be324e159b73f098f2ec2cf07e600d588e22c0bf7a78b2f06a460c83a0e6d78a3454aa67236ad284fa35a9207
|
data/CHANGELOG.md
CHANGED
@@ -110,9 +110,15 @@ class LogStash::Inputs::SQSS3 < LogStash::Inputs::Threadable
|
|
110
110
|
# Max messages to fetch, default is 10
|
111
111
|
config :max_messages_to_fetch, :validate => :number, :default => MAX_MESSAGES_TO_FETCH
|
112
112
|
|
113
|
-
#If set to true, does NOT delete the message after polling
|
113
|
+
# If set to true, does NOT delete the message after polling
|
114
114
|
config :skip_delete, :validate => :string, :default => SKIP_DELETE
|
115
115
|
|
116
|
+
# This is the max current load to support before throttling back (in Bytes)
|
117
|
+
config :max_load_before_throttling, :validate => :number, :default => 300000000
|
118
|
+
|
119
|
+
# Number of seconds to throttle back once max load has been met
|
120
|
+
config :seconds_to_throttle, :validate => :number, :default => 15
|
121
|
+
|
116
122
|
attr_reader :poller
|
117
123
|
attr_reader :s3
|
118
124
|
|
@@ -120,6 +126,7 @@ class LogStash::Inputs::SQSS3 < LogStash::Inputs::Threadable
|
|
120
126
|
require "aws-sdk"
|
121
127
|
@logger.info("Registering SQS input", :queue => @queue)
|
122
128
|
@logger.info("Skip Delete", :skip_delete => @skip_delete)
|
129
|
+
@current_load = 0.0
|
123
130
|
setup_queue
|
124
131
|
end
|
125
132
|
|
@@ -181,6 +188,9 @@ class LogStash::Inputs::SQSS3 < LogStash::Inputs::Threadable
|
|
181
188
|
end
|
182
189
|
# process the plain text content
|
183
190
|
begin
|
191
|
+
# assess currently running load (in MB)
|
192
|
+
@current_load += (record['s3']['object']['size'].to_f / 1000000)
|
193
|
+
|
184
194
|
lines = body.read.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: "\u2370").split(/\n/)
|
185
195
|
lines.each do |line|
|
186
196
|
@codec.decode(line) do |event|
|
@@ -225,6 +235,25 @@ class LogStash::Inputs::SQSS3 < LogStash::Inputs::Threadable
|
|
225
235
|
# this can take up to "Receive Message Wait Time" (of the sqs queue) seconds to be recognized
|
226
236
|
throw :stop_polling
|
227
237
|
end
|
238
|
+
|
239
|
+
# Throttle requests is overloaded by big files
|
240
|
+
if @current_load > @max_load_before_throttling/1000000 then
|
241
|
+
@logger.warn("**********Current load has exceeded " + (@max_load_before_throttling.to_f/1000000).to_s + " MB. Load is currently: " + @current_load.to_s + ". Throttling back by " + (@seconds_$
|
242
|
+
|
243
|
+
throttle_seconds_sleep = @seconds_to_throttle * (@current_load / (@max_load_before_throttling.to_f/1000000)).floor
|
244
|
+
|
245
|
+
if(throttle_seconds_sleep != 0) then
|
246
|
+
sleep(throttle_seconds_sleep)
|
247
|
+
end
|
248
|
+
|
249
|
+
# Cap the throttle time to 2 min
|
250
|
+
if(throttle_seconds_sleep > 120) then
|
251
|
+
sleep(120)
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
# Reset load to 0
|
256
|
+
@current_load = 0.0
|
228
257
|
end
|
229
258
|
# poll a message and process it
|
230
259
|
run_with_backoff do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-input-sqs_s3'
|
3
|
-
s.version = '1.1.
|
3
|
+
s.version = '1.1.10'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "Get logs from AWS s3 buckets as issued by an object-created event via sqs."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program. Full credit goes to Heiko Finzel. Republishing this gem to support Logstash 5."
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-sqs_s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Heiko Finzel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|