From 95b61501984d49a44ddc2ace889caf3feb823724 Mon Sep 17 00:00:00 2001 From: John Nunemaker Date: Sun, 12 Nov 2023 17:35:01 -0500 Subject: [PATCH] Compress body --- lib/flipper/cloud/telemetry.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/flipper/cloud/telemetry.rb b/lib/flipper/cloud/telemetry.rb index 900da4f54..aab4bf24b 100644 --- a/lib/flipper/cloud/telemetry.rb +++ b/lib/flipper/cloud/telemetry.rb @@ -1,4 +1,6 @@ require "json" +require "zlib" +require "stringio" require "forwardable" require "securerandom" require "concurrent/timer_task" @@ -122,7 +124,19 @@ def post_to_cloud(drained) }) http_client = @cloud_configuration.http_client http_client.add_header :schema_version, SCHEMA_VERSION - http_client.post "/telemetry", body + http_client.add_header :content_encoding, 'gzip' + http_client.post "/telemetry", compress(body) + rescue => error + # FIXME: Retry for net/http server errors + logger.debug "name=flipper_telemetry action=post_to_cloud error=#{error.inspect}" + end + + def compress(data) + io = StringIO.new + writer = Zlib::GzipWriter.new(io) + writer.write(data) + writer.finish + io.string end def pool_options