- Fixes several closely-related race conditions that could cause plugin crashes or data-loss #252
- race condition in initializing a prefix could cause one or more local temp files to be abandoned and only recovered after next pipeline start
- race condition in stale watcher could cause the plugin to crash when working with a stale (empty) file that had been deleted
- race condition in stale watcher could cause a non-empty file to be deleted if bytes were written to it after it was detected as stale
- Logstash recovers corrupted gzip and uploads to S3 #249
- Refactor: avoid usage of CHM (JRuby 9.3.4 work-around) #248
- Docs: more documentation on restore + temp dir #236
- minor logging improvements - use the same path: naming convention
- Feat: cast true/false values for additional_settings #241
- [DOC] Added note about performance implications of interpolated strings in prefixes #233
- [DOC] Updated links to use shared attributes #230
- [DOC] Added note that only AWS S3 is supported. No other S3 compatible storage solutions are supported. #223
- Feat: Added retry_count and retry_delay config #218
- Added ability to specify ONEZONE_IA as storage_class
- Added clarification for endpoint in documentation #198
- Added configuration information for multiple s3 outputs to documentation #196
- Fixed formatting problems and typographical errors #194, #201, and #204
- Add support for setting mutipart upload threshold #202
- Fixed issue where on restart, 0 byte files could erroneously be uploaded to s3 #195
- Fixed leak of file handles that prevented temporary files from being cleaned up before pipeline restart #190
- Fixed bucket validation failures when bucket policy requires encryption #191
- #185 Internal: Revert rake pinning to fix upstream builds
- #181 Docs: Fix incorrect characterization of parameters as
required
in example configuration. - #184 Internal: Pin rake version for jruby-1.7 compatibility
- Symbolize hash keys for additional_settings hash #179
- Docs: Set the default_codec doc attribute.
- Add documentation for endpoint, role_arn and role_session_name #174
- Add option for additional settings #173
- Add more S3 bucket ACLs #158
- Handle file not found exception on S3 upload #144
- Document prefix interpolation #154
- Update gemspec summary
- Fix bug where output would fail if the s3 bucket had encryption enabled (#146, #155)
- Fixed a randomly occurring error that logged as a missing
__jcreate_meta
method
- Fix some documentation issues
- Correct issue that allows to run on Ruby 9k. #150
- Documentation changes
- Fix:
#restore_from_crash
should use the same upload options as the normal uploader. #140 - Fix: Wrongly named
canned_acl
options, renamed to "public-read", "public-read-write", "authenticated-read", from the documentation http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
- Fix: Use the right
signature_version
for the SDK v2 #129 - Fix an issue to prevent the output to upload empty file to S3 #128
- Docs: Update the doc to show the new format of the remote file #126
- Delete the file on disk after they are succesfully uploaded to S3 #122 #120
- Added logging when an exception occur in the Uploader's
on_complete
callback
- Add support for
storage_class
configuration - Fix compatibility with Logstash 2.4
- Add support for
aws:kms
server side encryption #104
- When configuring the
canned_acl
options of the plugins the role was not applied correctly to the created object: #7
- Fixed AWS authentication when using instance profile credentials.
- Improved Error logging for S3 validation. Now specific S3 perms errors are logged
- This version is a complete rewrite over version 3.0.0 See #103
- This Plugin now uses the V2 version of the SDK, this make sure we receive the latest updates and changes.
- We now uses S3's
upload_file
instead of reading chunks, this method is more efficient and will uses the multipart with threads if the files is too big. - You can now use the
fieldref
syntax in the prefix to dynamically changes the target with the events it receives. - The Upload queue is now a bounded list, this options is necessary to allow back pressure to be communicated back to the pipeline but its configurable by the user.
- If the queue is full the plugin will start the upload in the current thread.
- The plugin now threadsafe and support the concurrency model
shared
- The rotation strategy can be selected, the recommended is
size_and_time
that will check for both the configured limits (size
andtime
are also available) - The
restore
option will now use a separate threadpool with an unbounded queue - The
restore
option will not block the launch of logstash and will uses less resources than the real time path - The plugin now uses
multi_receive_encode
, this will optimize the writes to the files - rotate operation are now batched to reduce the number of IO calls.
- Empty file will not be uploaded by any rotation rotation strategy
- We now use Concurrent-Ruby for the implementation of the java executor
- If you have finer grain permission on prefixes or want faster boot, you can disable the credentials check with
validate_credentials_on_root_bucket
- The credentials check will no longer fails if we can't delete the file
- We now have a full suite of integration test for all the defined rotation
Fixes: #4 #81 #44 #59 #50
- Move to the new concurrency model
:single
- use correct license identifier #99
- add support for
bucket_owner_full_control
in the canned ACL #87 - delete the test file but ignore any errors, because we actually only need to be able to write to S3. #97
- Fix improper shutdown of output worker threads
- improve exception handling
- Republish all the gems under jruby.
- Update the plugin to the version 2.0 of the plugin api, this change is required for Logstash 5.0 compatibility. See elastic/logstash#5141
- Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
- New dependency requirements for logstash-core for the 5.0 release
- Support signature_version option for v4 S3 keys
- Remove the
Time.now
stub in the spec, it was conflicting with other test when running inside the default plugins test #63 - Make the spec run faster by adjusting the values of time rotation test.
- Update deps for logstash 2.0
- Fixes an issue when tags were defined #39
- Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully, instead of using Thread.raise on the plugins' threads. Ref: elastic/logstash#3895
- Dependency on logstash-core update to 2.0
- Fix a synchronization issue when doing file rotation and checking the size of the current file
- Fix an issue with synchronization when shutting down the plugin and closing the current temp file