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

Function traceToParquetWithMapping

tempodb/encoding/vparquet4/schema.go:359–576  ·  view source on GitHub ↗
(id common.ID, tr *tempopb.Trace, ot *Trace, dedicatedResourceAttributes, dedicatedSpanAttributes dedicatedColumnMapping)

Source from the content-addressed store, hash-verified

357}
358
359func traceToParquetWithMapping(id common.ID, tr *tempopb.Trace, ot *Trace, dedicatedResourceAttributes, dedicatedSpanAttributes dedicatedColumnMapping) (*Trace, bool) {
360 if ot == nil {
361 ot = &Trace{}
362 }
363
364 ot.TraceIDText = util.TraceIDToHexString(id)
365 ot.TraceID = util.PadTraceIDTo16Bytes(id)
366
367 // Trace-level items
368 traceStart := uint64(0)
369 traceEnd := uint64(0)
370 var rootSpan *v1_trace.Span
371 var rootBatch *v1_trace.ResourceSpans
372
373 ot.ResourceSpans = extendReuseSlice(len(tr.ResourceSpans), ot.ResourceSpans)
374 for ib, b := range tr.ResourceSpans {
375 ob := &ot.ResourceSpans[ib]
376 // Clear out any existing fields in case they were set on the original
377 ob.Resource.DroppedAttributesCount = 0
378 ob.Resource.ServiceName = ""
379 ob.Resource.Cluster = nil
380 ob.Resource.Namespace = nil
381 ob.Resource.Pod = nil
382 ob.Resource.Container = nil
383 ob.Resource.K8sClusterName = nil
384 ob.Resource.K8sNamespaceName = nil
385 ob.Resource.K8sPodName = nil
386 ob.Resource.K8sContainerName = nil
387 ob.Resource.DedicatedAttributes = DedicatedAttributes{}
388
389 if b.Resource != nil {
390 ob.Resource.Attrs = extendReuseSlice(len(b.Resource.Attributes), ob.Resource.Attrs)
391 ob.Resource.DroppedAttributesCount = int32(b.Resource.DroppedAttributesCount)
392
393 attrCount := 0
394 for _, a := range b.Resource.Attributes {
395 strVal, ok := a.Value.Value.(*v1.AnyValue_StringValue)
396 written := ok
397 if ok {
398 switch a.Key {
399 case LabelServiceName:
400 ob.Resource.ServiceName = strVal.StringValue
401 case LabelCluster:
402 ob.Resource.Cluster = &strVal.StringValue
403 case LabelNamespace:
404 ob.Resource.Namespace = &strVal.StringValue
405 case LabelPod:
406 ob.Resource.Pod = &strVal.StringValue
407 case LabelContainer:
408 ob.Resource.Container = &strVal.StringValue
409
410 case LabelK8sClusterName:
411 ob.Resource.K8sClusterName = &strVal.StringValue
412 case LabelK8sNamespaceName:
413 ob.Resource.K8sNamespaceName = &strVal.StringValue
414 case LabelK8sPodName:
415 ob.Resource.K8sPodName = &strVal.StringValue
416 case LabelK8sContainerName:

Callers 3

traceToParquetFunction · 0.70
AppendTraceMethod · 0.70
CreateBlockFunction · 0.70

Calls 14

TraceIDToHexStringFunction · 0.92
PadTraceIDTo16BytesFunction · 0.92
GetStringValueMethod · 0.80
extendReuseSliceFunction · 0.70
attrToParquetFunction · 0.70
eventToParquetFunction · 0.70
linkToParquetFunction · 0.70
finalizeTraceFunction · 0.70
getMethod · 0.45
writeValueMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected