func()

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
}