Sha256: 103f1338498574394ab9f2dfe0b104f1c2616501b1dde9450df2e7a2e409a872

Contents?: true

Size: 1.33 KB

Versions: 32

Compression:

Stored size: 1.33 KB

Contents

# Serialize & deserialize data from the instrumented app up to the APM server
module ScoutApm
  module Serializers
    class PayloadSerializer
      def self.serialize(metadata, metrics, slow_transactions, jobs, slow_jobs, histograms)
        if ScoutApm::Agent.instance.config.value("report_format") == 'json'
          ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, metrics, slow_transactions, jobs, slow_jobs, histograms)
        else
          metadata = metadata.dup
          metadata.default = nil

          metrics = metrics.dup
          metrics.default = nil
          Marshal.dump(:metadata          => metadata,
                       :metrics           => metrics,
                       :slow_transactions => slow_transactions,
                       :jobs              => jobs,
                       :slow_jobs         => slow_jobs,

                       # as_json returns a ruby object. Since it's not a simple
                       # array, use this to maintain compatibility with json
                       # payloads. At this point, the marshal code branch is
                       # very rarely used anyway.
                       :histograms        => HistogramsSerializerToJson.new(histograms).as_json)
        end
      end

      def self.deserialize(data)
        Marshal.load(data)
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
scout_apm-3.0.0.pre11 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.32 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.31 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.30 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.29 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.28 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.27 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.26 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-3.0.0.pre10 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.24 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.23 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-3.0.0.pre9 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.22 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.21 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.20 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-3.0.0.pre8 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.19 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-3.0.0.pre7 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-2.1.18 lib/scout_apm/serializers/payload_serializer.rb
scout_apm-3.0.0.pre6 lib/scout_apm/serializers/payload_serializer.rb