Sha256: 94fb992963b736668597cb4529fbce8f69935a52763e00f0f894bdf0215e8b1a

Contents?: true

Size: 861 Bytes

Versions: 4

Compression:

Stored size: 861 Bytes

Contents

begin
  require 'aws-sdk-kinesis'
rescue LoadError
  require 'aws-sdk'
end

require 'logstash-logger/device/aws_stream'

module LogStashLogger
  module Device
    class Kinesis < AwsStream
      @stream_class = ::Aws::Kinesis::Client
      @recoverable_error_codes = [
        "ServiceUnavailable",
        "Throttling",
        "RequestExpired",
        "ProvisionedThroughputExceededException"
      ].freeze

      def transform_message(message)
        {
          data: message,
          partition_key: SecureRandom.uuid
        }
      end

      def put_records(records)
        @io.put_records({
          records: records,
          stream_name: @stream
        })
      end

      def is_successful_response(resp)
        resp.failed_record_count == 0
      end

      def get_response_records(resp)
        resp.records
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
logstash-logger-p-0.26.1 lib/logstash-logger/device/kinesis.rb
logstash-logger-yajl-0.27.0 lib/logstash-logger/device/kinesis.rb
logstash-logger-0.26.1 lib/logstash-logger/device/kinesis.rb
logstash-logger-0.26.0 lib/logstash-logger/device/kinesis.rb