class ElasticAPM::Transport::Serializers::SpanSerializer::ContextSerializer
@api private
def build(context)
def build(context) return unless context base = {} base[:tags] = mixed_object(context.labels) if context.labels.any? base[:sync] = context.sync unless context.sync.nil? base[:db] = build_db(context.db) if context.db base[:http] = build_http(context.http) if context.http if context.destination base[:destination] = build_destination(context.destination) end base end
def build_db(db)
def build_db(db) { instance: db.instance, statement: Util.truncate(db.statement, max_length: 10_000), type: db.type, user: db.user, rows_affected: db.rows_affected } end
def build_destination(destination)
def build_destination(destination) { service: { name: keyword_field(destination.name), resource: keyword_field(destination.resource), type: keyword_field(destination.type) } } end
def build_http(http)
def build_http(http) { url: http.url, status_code: http.status_code.to_i, method: keyword_field(http.method) } end