in enrichments/trace/internal/elastic/span.go [414:447]
func (s *spanEnrichmentContext) setSpanTypeSubtype(span ptrace.Span) (spanType string, spanSubtype string) {
switch {
case s.isDB:
spanType = "db"
spanSubtype = s.dbSystem
case s.isMessaging:
spanType = "messaging"
spanSubtype = s.messagingSystem
case s.isRPC:
spanType = "external"
spanSubtype = s.rpcSystem
case s.isHTTP:
spanType = "external"
spanSubtype = "http"
case s.isGenAi:
spanType = "genai"
spanSubtype = s.genAiSystem
default:
switch span.Kind() {
case ptrace.SpanKindInternal:
spanType = "app"
spanSubtype = "internal"
default:
spanType = "unknown"
}
}
span.Attributes().PutStr(elasticattr.SpanType, spanType)
if spanSubtype != "" {
span.Attributes().PutStr(elasticattr.SpanSubtype, spanSubtype)
}
return spanType, spanSubtype
}