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

Function mapSpanAttr

tempodb/encoding/vparquet4/block_autocomplete.go:1221–1282  ·  view source on GitHub ↗
(e entry)

Source from the content-addressed store, hash-verified

1219}
1220
1221func mapSpanAttr(e entry) traceql.Static {
1222 switch e.Key {
1223 case columnPathSpanID,
1224 columnPathSpanParentID,
1225 columnPathSpanNestedSetLeft,
1226 columnPathSpanNestedSetRight,
1227 columnPathSpanStartTime:
1228 case columnPathSpanDuration:
1229 return traceql.NewStaticDuration(time.Duration(e.Value.Int64()))
1230 case ColumnPathSpanName:
1231 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
1232 case columnPathSpanStatusCode:
1233 // Map OTLP status code back to TraceQL enum.
1234 // For other values, use the raw integer.
1235 var status traceql.Status
1236 switch e.Value.Uint64() {
1237 case uint64(v1.Status_STATUS_CODE_UNSET):
1238 status = traceql.StatusUnset
1239 case uint64(v1.Status_STATUS_CODE_OK):
1240 status = traceql.StatusOk
1241 case uint64(v1.Status_STATUS_CODE_ERROR):
1242 status = traceql.StatusError
1243 default:
1244 status = traceql.Status(e.Value.Uint64())
1245 }
1246 return traceql.NewStaticStatus(status)
1247 case columnPathSpanStatusMessage:
1248 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
1249 case columnPathSpanKind:
1250 var kind traceql.Kind
1251 switch e.Value.Uint64() {
1252 case uint64(v1.Span_SPAN_KIND_UNSPECIFIED):
1253 kind = traceql.KindUnspecified
1254 case uint64(v1.Span_SPAN_KIND_INTERNAL):
1255 kind = traceql.KindInternal
1256 case uint64(v1.Span_SPAN_KIND_SERVER):
1257 kind = traceql.KindServer
1258 case uint64(v1.Span_SPAN_KIND_CLIENT):
1259 kind = traceql.KindClient
1260 case uint64(v1.Span_SPAN_KIND_PRODUCER):
1261 kind = traceql.KindProducer
1262 case uint64(v1.Span_SPAN_KIND_CONSUMER):
1263 kind = traceql.KindConsumer
1264 default:
1265 kind = traceql.Kind(e.Value.Uint64())
1266 }
1267 return traceql.NewStaticKind(kind)
1268 default:
1269 // This exists for span-level dedicated columns like http.status_code
1270 switch e.Value.Kind() {
1271 case parquet.Boolean:
1272 return traceql.NewStaticBool(e.Value.Boolean())
1273 case parquet.Int32, parquet.Int64:
1274 return traceql.NewStaticInt(int(e.Value.Int64()))
1275 case parquet.Float:
1276 return traceql.NewStaticFloat(e.Value.Double())
1277 case parquet.ByteArray, parquet.FixedLenByteArray:
1278 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