func isElasticTransaction()

in enrichments/trace/internal/elastic/span.go [687:700]


func isElasticTransaction(span ptrace.Span) bool {
	flags := tracepb.SpanFlags(span.Flags())
	switch {
	case isTraceRoot(span):
		return true
	case (flags & tracepb.SpanFlags_SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) == 0:
		// span parent is unknown, fall back to span kind
		return span.Kind() == ptrace.SpanKindServer || span.Kind() == ptrace.SpanKindConsumer
	case (flags & tracepb.SpanFlags_SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0:
		// span parent is remote
		return true
	}
	return false
}