class StackifyRubyAPM::AgentBaseTransport
This class will take care of building a protobuf message. @api private
Public Class Methods
new(config)
click to toggle source
# File lib/stackify_apm/transport/agent_base.rb, line 11 def initialize(config) @config = config @transaction_serializers = Serializers::Transactions.new(config) end
Public Instance Methods
build_json_message(transactions = [])
click to toggle source
# File lib/stackify_apm/transport/agent_base.rb, line 41 def build_json_message(transactions = []) traces = [] transactions.each do |transaction| # convert transaction to json json_transaction = @transaction_serializers.build_json(@config, transaction) # add to traces array traces << json_transaction end return traces rescue StandardError => e debug "[AgentBaseTransport] build_json_message() exception: #{e.inspect}" end
build_message(transactions = [])
click to toggle source
This method will build a group of Stackify::Traces from the protobuf objects. It accept Array
of transactions.
# File lib/stackify_apm/transport/agent_base.rb, line 27 def build_message(transactions = []) # convert transactions to protobuf traces = StackifyProtoBuf::Traces.new transactions.each do |transaction| # convert transaction to protobuf protobuf_transaction = @transaction_serializers.build_protobuf(@config, transaction) # add to traces array traces.traces.push(protobuf_transaction) end return traces rescue StandardError => e debug "[AgentBaseTransport] build_message() exception: #{e.inspect}" end
get_json_message(transactions)
click to toggle source
# File lib/stackify_apm/transport/agent_base.rb, line 21 def get_json_message(transactions) JSON.generate(build_json_message(transactions)) end
get_protobuf_message(transactions)
click to toggle source
# File lib/stackify_apm/transport/agent_base.rb, line 16 def get_protobuf_message(transactions) protobuf_obj = build_message(transactions) StackifyProtoBuf::Traces.encode(protobuf_obj) end
post(_transactions = [])
click to toggle source
# File lib/stackify_apm/transport/agent_base.rb, line 54 def post(_transactions = []) raise NotImplementedError end