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

Method ToObject

pkg/model/v2/segment_decoder.go:57–81  ·  view source on GitHub ↗

ToObject creates a byte slice that can be interpreted by ObjectDecoder in this package see object_decoder.go for details on the format.

(segments [][]byte)

Source from the content-addressed store, hash-verified

55// ToObject creates a byte slice that can be interpreted by ObjectDecoder in this package
56// see object_decoder.go for details on the format.
57func (d *SegmentDecoder) ToObject(segments [][]byte) ([]byte, error) {
58 // strip start/end from individual segments and place it in a TraceBytesWrapper
59 var err error
60 var minStart, maxEnd uint32
61 minStart = math.MaxUint32
62
63 for i, b := range segments {
64 var start, end uint32
65
66 segments[i], start, end, err = stripStartEnd(b)
67 if err != nil {
68 return nil, err
69 }
70 if start < minStart {
71 minStart = start
72 }
73 if end > maxEnd {
74 maxEnd = end
75 }
76 }
77
78 return marshalWithStartEnd(&tempopb.TraceBytes{
79 Traces: segments,
80 }, minStart, maxEnd)
81}
82
83func (d *SegmentDecoder) FastRange(buff []byte) (uint32, uint32, error) {
84 _, start, end, err := stripStartEnd(buff)

Callers

nothing calls this directly

Implementers 2

SegmentDecoderpkg/model/v2/segment_decoder.go
SegmentDecoderpkg/model/v1/segment_decoder.go

Calls 2

stripStartEndFunction · 0.85
marshalWithStartEndFunction · 0.85

Tested by

no test coverage detected