(e entry)
| 982 | } |
| 983 | |
| 984 | func 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())) |
nothing calls this directly
no test coverage detected