diff --git a/lib/logtail/log_devices/http.rb b/lib/logtail/log_devices/http.rb index f94303f..ffd5492 100755 --- a/lib/logtail/log_devices/http.rb +++ b/lib/logtail/log_devices/http.rb @@ -206,10 +206,14 @@ def build_request(msgs) req = Net::HTTP::Post.new(path) req['Authorization'] = authorization_payload req['Content-Type'] = CONTENT_TYPE - req['Content-Encoding'] = 'deflate' + req['Content-Encoding'] = 'gzip' req['User-Agent'] = USER_AGENT uncompressed = msgs.map { |msg| force_utf8_encoding(msg.to_hash) }.to_msgpack - req.body = Zlib::Deflate.deflate(uncompressed, Zlib::BEST_SPEED) + string_io = StringIO.new + Zlib::GzipWriter.wrap(string_io) do |gz| + gz.write(uncompressed) + end + req.body = string_io.string req end diff --git a/logtail.gemspec b/logtail.gemspec index baa25c2..4a35eaa 100644 --- a/logtail.gemspec +++ b/logtail.gemspec @@ -34,10 +34,4 @@ Gem::Specification.new do |spec| spec.add_development_dependency('rspec-its', '>= 0') spec.add_development_dependency('timecop', '>= 0') spec.add_development_dependency('webmock', '~> 2.3') - - if RUBY_PLATFORM == "java" - spec.add_development_dependency('activerecord-jdbcsqlite3-adapter', '>= 0') - else - spec.add_development_dependency('sqlite3', '>= 0') - end end diff --git a/spec/logtail/log_devices/http_spec.rb b/spec/logtail/log_devices/http_spec.rb index fad540e..ad00f0e 100755 --- a/spec/logtail/log_devices/http_spec.rb +++ b/spec/logtail/log_devices/http_spec.rb @@ -102,8 +102,8 @@ request_queue = http.instance_variable_get(:@request_queue) request_attempt = request_queue.deq expect(request_attempt.request).to be_kind_of(Net::HTTP::Post) - decompressed_body = Zlib::Inflate.inflate(request_attempt.request.body) - expect(decompressed_body).to start_with("\x92\x84\xA5level\xA4INFO\xA2dt\xBB2016-09-01T12:00:00.000000Z\xA7message\xB2test log message 1".force_encoding("ASCII-8BIT")) + decompressed_body = Zlib::GzipReader.new(StringIO.new(request_attempt.request.body)).read + expect(decompressed_body).to start_with("\x92\x84\xA5level\xA4INFO\xA2dt\xBB2016-09-01T12:00:00.000000Z\xA7message\xB2test log message 1") message_queue = http.instance_variable_get(:@msg_queue) expect(message_queue.size).to eq(0) @@ -128,8 +128,8 @@ it "should deliver requests on an interval" do stub = stub_request(:post, "https://in.logs.betterstack.com/"). with do |request| - decompressed_body = Zlib::Inflate.inflate(request.body) - expect(decompressed_body).to start_with("\x92\x84\xA5level\xA4INFO\xA2dt\xBB2016-09-01T12:00:00.000000Z\xA7message\xB2test log message 1".force_encoding("ASCII-8BIT")) + decompressed_body = Zlib::GzipReader.new(StringIO.new(request.body)).read + expect(decompressed_body).to start_with("\x92\x84\xA5level\xA4INFO\xA2dt\xBB2016-09-01T12:00:00.000000Z\xA7message\xB2test log message 1") expect(request.headers['Authorization']).to eq('Bearer MYKEY') expect(request.headers['Content-Type']).to eq('application/msgpack')