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
}