MCPcopy
hub / github.com/grafana/tempo / mapSpanAttr

Function mapSpanAttr

tempodb/encoding/vparquet3/block_autocomplete.go:984–1045  ·  view source on GitHub ↗
(e entry)

Source from the content-addressed store, hash-verified

982}
983
984func mapSpanAttr(e entry) traceql.Static {
985 switch e.Key {
986 case columnPathSpanID,
987 columnPathSpanParentID,
988 columnPathSpanNestedSetLeft,
989 columnPathSpanNestedSetRight,
990 columnPathSpanStartTime:
991 case columnPathSpanDuration:
992 return traceql.NewStaticDuration(time.Duration(e.Value.Int64()))
993 case columnPathSpanName:
994 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
995 case columnPathSpanStatusCode:
996 // Map OTLP status code back to TraceQL enum.
997 // For other values, use the raw integer.
998 var status traceql.Status
999 switch e.Value.Uint64() {
1000 case uint64(v1.Status_STATUS_CODE_UNSET):
1001 status = traceql.StatusUnset
1002 case uint64(v1.Status_STATUS_CODE_OK):
1003 status = traceql.StatusOk
1004 case uint64(v1.Status_STATUS_CODE_ERROR):
1005 status = traceql.StatusError
1006 default:
1007 status = traceql.Status(e.Value.Uint64())
1008 }
1009 return traceql.NewStaticStatus(status)
1010 case columnPathSpanStatusMessage:
1011 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
1012 case columnPathSpanKind:
1013 var kind traceql.Kind
1014 switch e.Value.Uint64() {
1015 case uint64(v1.Span_SPAN_KIND_UNSPECIFIED):
1016 kind = traceql.KindUnspecified
1017 case uint64(v1.Span_SPAN_KIND_INTERNAL):
1018 kind = traceql.KindInternal
1019 case uint64(v1.Span_SPAN_KIND_SERVER):
1020 kind = traceql.KindServer
1021 case uint64(v1.Span_SPAN_KIND_CLIENT):
1022 kind = traceql.KindClient
1023 case uint64(v1.Span_SPAN_KIND_PRODUCER):
1024 kind = traceql.KindProducer
1025 case uint64(v1.Span_SPAN_KIND_CONSUMER):
1026 kind = traceql.KindConsumer
1027 default:
1028 kind = traceql.Kind(e.Value.Uint64())
1029 }
1030 return traceql.NewStaticKind(kind)
1031 default:
1032 // This exists for span-level dedicated columns like http.status_code
1033 switch e.Value.Kind() {
1034 case parquet.Boolean:
1035 return traceql.NewStaticBool(e.Value.Boolean())
1036 case parquet.Int32, parquet.Int64:
1037 return traceql.NewStaticInt(int(e.Value.Int64()))
1038 case parquet.Float:
1039 return traceql.NewStaticFloat(e.Value.Double())
1040 case parquet.ByteArray, parquet.FixedLenByteArray:
1041 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))

Callers

nothing calls this directly

Calls 13

NewStaticDurationFunction · 0.92
NewStaticStringFunction · 0.92
StatusTypeAlias · 0.92
NewStaticStatusFunction · 0.92
KindTypeAlias · 0.92
NewStaticKindFunction · 0.92
NewStaticBoolFunction · 0.92
NewStaticIntFunction · 0.92
NewStaticFloatFunction · 0.92
NewStaticNilFunction · 0.92
DurationMethod · 0.80
KindMethod · 0.80

Tested by

no test coverage detected