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

Function flattenForSelectAll

tempodb/encoding/vparquet5/block_traceql_test.go:1525–1632  ·  view source on GitHub ↗
(tr *Trace, dcm dedicatedColumnMapping)

Source from the content-addressed store, hash-verified

1523}
1524
1525func flattenForSelectAll(tr *Trace, dcm dedicatedColumnMapping) *traceql.Spanset {
1526 var traceAttrs []attrVal
1527 newSS := &traceql.Spanset{
1528 RootServiceName: tr.RootServiceName,
1529 RootSpanName: tr.RootSpanName,
1530 TraceID: tr.TraceID,
1531 DurationNanos: tr.DurationNano,
1532 }
1533 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceIDAttribute, traceql.NewStaticString(tr.TraceIDText)})
1534 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceDurationAttribute, traceql.NewStaticDuration(time.Duration(tr.DurationNano))})
1535 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceRootServiceAttribute, traceql.NewStaticString(tr.RootServiceName)})
1536 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceRootSpanAttribute, traceql.NewStaticString(tr.RootSpanName)})
1537 sortAttrs(traceAttrs)
1538
1539 for _, rs := range tr.ResourceSpans {
1540 var rsAttrs []attrVal
1541 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelServiceName), traceql.NewStaticString(rs.Resource.ServiceName)})
1542
1543 for _, a := range parquetToProtoAttrs(rs.Resource.Attrs) {
1544 if arr := a.Value.GetArrayValue(); arr != nil {
1545 for _, v := range arr.Values {
1546 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, a.Key), traceql.StaticFromAnyValue(v)})
1547 }
1548 continue
1549 }
1550 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, a.Key), traceql.StaticFromAnyValue(a.Value)})
1551 }
1552
1553 for attr, col := range dcm.items() {
1554 if strings.Contains(col.ColumnPath, "Resource") {
1555 v := col.readValue(&rs.Resource.DedicatedAttributes)
1556 if v == nil {
1557 a := traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, attr)
1558 s := traceql.NewStaticString("nil")
1559 rsAttrs = append(rsAttrs, attrVal{a, s})
1560 continue
1561 }
1562 a := traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, attr)
1563 s := traceql.StaticFromAnyValue(v)
1564 rsAttrs = append(rsAttrs, attrVal{a, s})
1565 }
1566 }
1567
1568 sortAttrs(rsAttrs)
1569
1570 for _, ss := range rs.ScopeSpans {
1571 var instrumentationAttrs []attrVal
1572 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.IntrinsicInstrumentationNameAttribute, traceql.NewStaticString(ss.Scope.Name)})
1573 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.IntrinsicInstrumentationVersionAttribute, traceql.NewStaticString(ss.Scope.Version)})
1574 for _, a := range parquetToProtoAttrs(ss.Scope.Attrs) {
1575 if arr := a.Value.GetArrayValue(); arr != nil {
1576 for _, v := range arr.Values {
1577 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeInstrumentation, false, a.Key), traceql.StaticFromAnyValue(v)})
1578 }
1579 continue
1580 }
1581 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeInstrumentation, false, a.Key), traceql.StaticFromAnyValue(a.Value)})
1582 }

Callers 2

Calls 15

setTraceAttrsMethod · 0.95
setResourceAttrsMethod · 0.95
addSpanAttrMethod · 0.95
NewStaticStringFunction · 0.92
NewStaticDurationFunction · 0.92
NewScopedAttributeFunction · 0.92
StaticFromAnyValueFunction · 0.92
NewStaticIntFunction · 0.92
NewStaticKindFunction · 0.92
NewStaticStatusFunction · 0.92
DurationMethod · 0.80

Tested by

no test coverage detected