(id common.ID, tr *tempopb.Trace, ot *Trace, dedicatedResourceAttributes, dedicatedSpanAttributes dedicatedColumnMapping)
| 357 | } |
| 358 | |
| 359 | func 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: |
no test coverage detected