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

Function flattenForSelectAll

tempodb/encoding/vparquet4/block_traceql_test.go:1334–1459  ·  view source on GitHub ↗
(tr *Trace, dcm dedicatedColumnMapping)

Source from the content-addressed store, hash-verified

1332}
1333
1334func flattenForSelectAll(tr *Trace, dcm dedicatedColumnMapping) *traceql.Spanset {
1335 var traceAttrs []attrVal
1336 newSS := &traceql.Spanset{
1337 RootServiceName: tr.RootServiceName,
1338 RootSpanName: tr.RootSpanName,
1339 TraceID: tr.TraceID,
1340 DurationNanos: tr.DurationNano,
1341 }
1342 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceIDAttribute, traceql.NewStaticString(tr.TraceIDText)})
1343 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceDurationAttribute, traceql.NewStaticDuration(time.Duration(tr.DurationNano))})
1344 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceRootServiceAttribute, traceql.NewStaticString(tr.RootServiceName)})
1345 traceAttrs = append(traceAttrs, attrVal{traceql.IntrinsicTraceRootSpanAttribute, traceql.NewStaticString(tr.RootSpanName)})
1346 sortAttrs(traceAttrs)
1347
1348 for _, rs := range tr.ResourceSpans {
1349 var rsAttrs []attrVal
1350 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelServiceName), traceql.NewStaticString(rs.Resource.ServiceName)})
1351 if rs.Resource.Cluster != nil {
1352 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelCluster), traceql.NewStaticString(*rs.Resource.Cluster)})
1353 } else {
1354 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelCluster), traceql.NewStaticString("nil")})
1355 }
1356 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelNamespace), traceql.NewStaticString(*rs.Resource.Namespace)})
1357 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelPod), traceql.NewStaticString(*rs.Resource.Pod)})
1358 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelContainer), traceql.NewStaticString(*rs.Resource.Container)})
1359 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelK8sClusterName), traceql.NewStaticString(*rs.Resource.K8sClusterName)})
1360 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelK8sNamespaceName), traceql.NewStaticString(*rs.Resource.K8sNamespaceName)})
1361 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelK8sPodName), traceql.NewStaticString(*rs.Resource.K8sPodName)})
1362 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, LabelK8sContainerName), traceql.NewStaticString(*rs.Resource.K8sContainerName)})
1363
1364 for _, a := range parquetToProtoAttrs(rs.Resource.Attrs) {
1365 if arr := a.Value.GetArrayValue(); arr != nil {
1366 for _, v := range arr.Values {
1367 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, a.Key), traceql.StaticFromAnyValue(v)})
1368 }
1369 continue
1370 }
1371 rsAttrs = append(rsAttrs, attrVal{traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, a.Key), traceql.StaticFromAnyValue(a.Value)})
1372 }
1373
1374 dcm.forEach(func(attr string, column dedicatedColumn) {
1375 if strings.Contains(column.ColumnPath, "Resource") {
1376 v := column.readValue(&rs.Resource.DedicatedAttributes)
1377 if v == nil {
1378 return
1379 }
1380 a := traceql.NewScopedAttribute(traceql.AttributeScopeResource, false, attr)
1381 s := traceql.StaticFromAnyValue(v)
1382 rsAttrs = append(rsAttrs, attrVal{a, s})
1383 }
1384 })
1385
1386 sortAttrs(rsAttrs)
1387
1388 for _, ss := range rs.ScopeSpans {
1389 var instrumentationAttrs []attrVal
1390 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.IntrinsicInstrumentationNameAttribute, traceql.NewStaticString(ss.Scope.Name)})
1391 instrumentationAttrs = append(instrumentationAttrs, attrVal{traceql.IntrinsicInstrumentationVersionAttribute, traceql.NewStaticString(ss.Scope.Version)})

Callers 1

Calls 15

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

Tested by

no test coverage detected