class ElasticAPM::Transport::Serializers::SpanSerializer
@api private
Attributes
context_serializer[R]
Public Class Methods
new(config)
click to toggle source
Calls superclass method
ElasticAPM::Transport::Serializers::Serializer.new
# File lib/elastic_apm/transport/serializers/span_serializer.rb, line 7 def initialize(config) super @context_serializer = ContextSerializer.new(config) end
Public Instance Methods
build(span)
click to toggle source
rubocop:disable Metrics/MethodLength, Metrics/AbcSize
# File lib/elastic_apm/transport/serializers/span_serializer.rb, line 16 def build(span) { span: { id: span.id, transaction_id: span.transaction_id, parent_id: span.parent_id, name: keyword_field(span.name), type: keyword_field(span.type), duration: ms(span.duration), context: context_serializer.build(span.context), stacktrace: span.stacktrace.to_a, timestamp: span.timestamp, trace_id: span.trace_id } } end