logstash-input-s3-sns-sqs 1.5.5 → 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b62fceab48aa106945ecefbfdbb4ac504e5153a4
4
- data.tar.gz: a7e9f8e76083f327a8bab53d71541935a27529d2
3
+ metadata.gz: 2844e9d4b19c4f7e8cf3bf176364eedc803bd5d4
4
+ data.tar.gz: 38ef08235d941ca58243c3cea8d26371b3259590
5
5
  SHA512:
6
- metadata.gz: 87da84fac3e6b5a362392d099d508d73bf733e73ff995a7c5b3c04e9ac12a6ff26d5bceff2d8f31d8d24e80197e4a80d31de12a2f2fde64d8ceddc7d9d2d6b13
7
- data.tar.gz: deec36bafaa1af89a25de498953e70e5ce27de5bdc9f5c62741b7bd90f5159f6b127ddc8886a94eb23dd27dc0a0882b7950d7a23f475a4d664ae04936ada6d23
6
+ metadata.gz: 88f97f97d2ff100ca317630bdb3ff1c1420a82457b1ab68deb488e0d73de01d338991f360d1a566b2ed42fa37e2d68ce931cbfaf63ebf244865e3a7cf1729527
7
+ data.tar.gz: 3663bf7c764de71b5dbf86fc587c3678cdc7dc50e1b74e2fe53846c4fea415b69008fea2f8388cbd94e2a63491fa39e77e7c4d27380e54cef6a106ccd9828bcb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ##1.5.6
2
+ -BugFix
1
3
  ##1.5.5
2
4
  - Memo to me: better testing :-) Fix msg -> message
3
5
  ##1.5.4
@@ -203,7 +203,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
203
203
  instance_codec = set_codec(type_folder) unless set_codec_by_folder["#{type_folder}"].nil?
204
204
  # try download and :skip_delete if it fails
205
205
  #if record['s3']['object']['size'] < 10000000 then
206
- process_log(bucket, key, type_folder, instance_codec, queue)
206
+ process_log(bucket, key, type_folder, instance_codec, queue, message)
207
207
  #else
208
208
  # @logger.info("Your file is too big")
209
209
  #end
@@ -213,13 +213,13 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
213
213
  end
214
214
 
215
215
  private
216
- def process_log(bucket , key, folder, instance_codec, queue)
216
+ def process_log(bucket , key, folder, instance_codec, queue, message)
217
217
  s3bucket = @s3_resource.bucket(bucket)
218
218
  @logger.debug("Lets go reading file", :bucket => bucket, :key => key)
219
219
  object = s3bucket.object(key)
220
220
  filename = File.join(temporary_directory, File.basename(key))
221
221
  if download_remote_file(object, filename)
222
- if process_local_log( filename, key, folder, instance_codec, queue, bucket)
222
+ if process_local_log( filename, key, folder, instance_codec, queue, bucket, message)
223
223
  begin
224
224
  FileUtils.remove_entry_secure(filename, true)
225
225
  delete_file_from_bucket(object)
@@ -228,11 +228,11 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
228
228
  end
229
229
  end
230
230
  else
231
- begin
232
- FileUtils.remove_entry_secure(filename, true)
233
- rescue Exception => e
234
- @logger.debug("We had problems clean up your tmp dir", :file => filename, :error => e)
235
- end
231
+ begin
232
+ FileUtils.remove_entry_secure(filename, true)
233
+ rescue Exception => e
234
+ @logger.debug("We had problems clean up your tmp dir", :file => filename, :error => e)
235
+ end
236
236
  end
237
237
  end
238
238
 
@@ -266,18 +266,24 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
266
266
  # @param [Queue] Where to push the event
267
267
  # @param [String] Which file to read from
268
268
  # @return [Boolean] True if the file was completely read, false otherwise.
269
- def process_local_log(filename, key, folder, instance_codec, queue, bucket)
270
- @logger.debug('Processing file', :filename => filename)
269
+ def process_local_log(filename, key, folder, instance_codec, queue, bucket, message)
270
+ @logger.info('Processing file', :filename => filename)
271
271
  metadata = {}
272
+ start_time = Time.now
272
273
  # Currently codecs operates on bytes instead of stream.
273
274
  # So all IO stuff: decompression, reading need to be done in the actual
274
275
  # input and send as bytes to the codecs.
275
276
  read_file(filename) do |line|
277
+ if (Time.now - start_time) >= (@visibility_timeout.to_f / 100.0 * 90.to_f)
278
+ @logger.info("Increasing the visibility_timeout ... ", :timeout => @visibility_timeout, :filename => filename )
279
+ poller.change_message_visibility_timeout(message, @visibility_timeout)
280
+ start_time = Time.now
281
+ end
276
282
  if stop?
277
283
  @logger.warn("Logstash S3 input, stop reading in the middle of the file, we will read it again when logstash is started")
278
284
  return false
279
285
  end
280
- #line = line.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: "\u2370")
286
+ line = line.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: "\u2370")
281
287
  #@logger.debug("read line", :line => line)
282
288
  instance_codec.decode(line) do |event|
283
289
  @logger.debug("decorate event")
@@ -462,10 +468,6 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
462
468
  run_with_backoff do
463
469
  poller.poll(polling_options) do |message|
464
470
  begin
465
- Stud.interval(@visibility_timeout - 10 ) do
466
- @logger.info("Increasing the visibility_timeout ... ")
467
- poller.change_message_visibility_timeout(message, 60)
468
- end
469
471
  handle_message(message, queue, @codec.clone)
470
472
  poller.delete_message(message)
471
473
  rescue Exception => e
@@ -509,10 +511,6 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
509
511
  run_with_backoff do
510
512
  poller.poll(polling_options) do |message|
511
513
  begin
512
- Stud.interval(@visibility_timeout - 10 ) do
513
- @logger.info("Increasing the visibility_timeout ... ")
514
- poller.change_message_visibility_timeout(msg, 60)
515
- end
516
514
  handle_message(message, queue, @codec.clone)
517
515
  poller.delete_message(message)
518
516
  rescue Exception => e
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-s3-sns-sqs'
3
- s.version = '1.5.5'
3
+ s.version = '1.5.6'
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 sns -> 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"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-s3-sns-sqs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.5
4
+ version: 1.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Herweg