class ScoutApm::Serializers::PayloadSerializer
Public Class Methods
deserialize(data)
click to toggle source
# File lib/scout_apm/serializers/payload_serializer.rb, line 30 def self.deserialize(data) Marshal.load(data) end
serialize(metadata, metrics, slow_transactions, jobs, slow_jobs, histograms, db_query_metrics, external_service_metrics, traces)
click to toggle source
# File lib/scout_apm/serializers/payload_serializer.rb, line 5 def self.serialize(metadata, metrics, slow_transactions, jobs, slow_jobs, histograms, db_query_metrics, external_service_metrics, traces) if ScoutApm::Agent.instance.context.config.value("report_format") == 'json' ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, metrics, slow_transactions, jobs, slow_jobs, histograms, db_query_metrics, external_service_metrics, traces) 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, :db_query_metrics => db_query_metrics, :external_service_metrics => external_service_metrics) end end