Sha256: 20a248a93d9372cf2f55a0763283c601652d1d8bc78b96b26fab8c97f8c1292b

Contents?: true

Size: 845 Bytes

Versions: 1

Compression:

Stored size: 845 Bytes

Contents

require 'zlib'

class Utility
  def self.compress_payload(payload)
      puts "#{self.get_time} Compressing metrics payload"
      json_payload = payload.to_json
  
      # Compress the JSON string using zlib's GzipWriter
      compressed_payload = StringIO.new    
      Zlib::GzipWriter.wrap(compressed_payload) do |gz|
        begin
          gz.write(json_payload)
        ensure
          gz.close
        end
      end
  
      # convert the compressed data to a string
      compressed_data = compressed_payload.string
  
      puts "#{self.get_time} Original metrics payload size: #{json_payload.bytesize} bytes"
      puts "#{self.get_time} Compressed metrics payload size: #{compressed_data.bytesize} bytes"
  
      return compressed_data
  end

  def self.get_time() 
      return Time.now.strftime("%Y-%m-%d %H:%M:%S")
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-jfrog-send-metrics-0.1.10 lib/fluent/plugin/utility.rb