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