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

Function mapSpanAttr

tempodb/encoding/vparquet5/block_autocomplete.go:1280–1341  ·  view source on GitHub ↗
(e entry)

Source from the content-addressed store, hash-verified

1278}
1279
1280func mapSpanAttr(e entry) traceql.Static {
1281 switch e.Key {
1282 case columnPathSpanID,
1283 columnPathSpanParentID,
1284 columnPathSpanNestedSetLeft,
1285 columnPathSpanNestedSetRight,
1286 columnPathSpanStartTime:
1287 case columnPathSpanDuration:
1288 return traceql.NewStaticDuration(time.Duration(e.Value.Int64()))
1289 case ColumnPathSpanName:
1290 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
1291 case columnPathSpanStatusCode:
1292 // Map OTLP status code back to TraceQL enum.
1293 // For other values, use the raw integer.
1294 var status traceql.Status
1295 switch e.Value.Uint64() {
1296 case uint64(v1.Status_STATUS_CODE_UNSET):
1297 status = traceql.StatusUnset
1298 case uint64(v1.Status_STATUS_CODE_OK):
1299 status = traceql.StatusOk
1300 case uint64(v1.Status_STATUS_CODE_ERROR):
1301 status = traceql.StatusError
1302 default:
1303 status = traceql.Status(e.Value.Uint64())
1304 }
1305 return traceql.NewStaticStatus(status)
1306 case columnPathSpanStatusMessage:
1307 return traceql.NewStaticString(unsafeToString(e.Value.ByteArray()))
1308 case columnPathSpanKind:
1309 var kind traceql.Kind
1310 switch e.Value.Uint64() {
1311 case uint64(v1.Span_SPAN_KIND_UNSPECIFIED):
1312 kind = traceql.KindUnspecified
1313 case uint64(v1.Span_SPAN_KIND_INTERNAL):
1314 kind = traceql.KindInternal
1315 case uint64(v1.Span_SPAN_KIND_SERVER):
1316 kind = traceql.KindServer
1317 case uint64(v1.Span_SPAN_KIND_CLIENT):
1318 kind = traceql.KindClient
1319 case uint64(v1.Span_SPAN_KIND_PRODUCER):
1320 kind = traceql.KindProducer
1321 case uint64(v1.Span_SPAN_KIND_CONSUMER):
1322 kind = traceql.KindConsumer
1323 default:
1324 kind = traceql.Kind(e.Value.Uint64())
1325 }
1326 return traceql.NewStaticKind(kind)
1327 default:
1328 // This exists for span-level dedicated columns like http.status_code
1329 switch e.Value.Kind() {
1330 case parquet.Boolean:
1331 return traceql.NewStaticBool(e.Value.Boolean())
1332 case parquet.Int32, parquet.Int64:
1333 return traceql.NewStaticInt(int(e.Value.Int64()))
1334 case parquet.Float:
1335 return traceql.NewStaticFloat(e.Value.Double())
1336 case parquet.ByteArray, parquet.FixedLenByteArray:
1337 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