(e entry)
| 1278 | } |
| 1279 | |
| 1280 | func 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())) |
nothing calls this directly
no test coverage detected