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

Method KeepGroup

tempodb/encoding/vparquet5/block_traceql.go:3204–3316  ·  view source on GitHub ↗
(res *parquetquery.IteratorResult)

Source from the content-addressed store, hash-verified

3202}
3203
3204func (c *spanCollector) KeepGroup(res *parquetquery.IteratorResult) bool {
3205 var sp *span
3206 // look for existing span first. this occurs on the second pass
3207 for _, e := range res.OtherEntries {
3208 if v, ok := e.Value.(*span); ok {
3209 sp = v
3210 break
3211 }
3212 }
3213
3214 // if not found create a new one
3215 if sp == nil {
3216 sp = getSpan()
3217 sp.rowNum = res.RowNumber
3218 }
3219
3220 for _, e := range res.OtherEntries {
3221 switch v := e.Value.(type) {
3222 case traceql.Static:
3223 sp.addSpanAttr(newSpanAttr(e.Key), v)
3224 case *event:
3225 sp.setEventAttrs(v.attrs)
3226 putEvent(v)
3227 case *link:
3228 sp.setLinkAttrs(v.attrs)
3229 putLink(v)
3230 }
3231 }
3232
3233 var durationNanos uint64
3234
3235 // Merge all individual columns into the span
3236 for _, kv := range res.Entries {
3237 switch kv.Key {
3238 case columnPathSpanID:
3239 sp.id = kv.Value.ByteArray()
3240 sp.addSpanAttr(traceql.IntrinsicSpanIDAttribute, traceql.NewStaticString(util.SpanIDToHexString(kv.Value.ByteArray())))
3241 case columnPathSpanParentSpanID:
3242 sp.addSpanAttr(traceql.IntrinsicParentIDAttribute, traceql.NewStaticString(util.SpanIDToHexString(kv.Value.ByteArray())))
3243 case columnPathSpanStartTime:
3244 sp.startTimeUnixNanos = kv.Value.Uint64()
3245 case columnPathSpanStartRounded15:
3246 sp.startTimeUnixNanos = intervalMapper15Seconds.TimestampOf(int(kv.Value.Int64()))
3247 case columnPathSpanStartRounded60:
3248 sp.startTimeUnixNanos = intervalMapper60Seconds.TimestampOf(int(kv.Value.Int64()))
3249 case columnPathSpanStartRounded300:
3250 sp.startTimeUnixNanos = intervalMapper300Seconds.TimestampOf(int(kv.Value.Int64()))
3251 case columnPathSpanStartRounded3600:
3252 sp.startTimeUnixNanos = intervalMapper3600Seconds.TimestampOf(int(kv.Value.Int64()))
3253 case columnPathSpanDuration:
3254 durationNanos = kv.Value.Uint64()
3255 sp.durationNanos = durationNanos
3256 sp.addSpanAttr(traceql.IntrinsicDurationAttribute, traceql.NewStaticDuration(time.Duration(durationNanos)))
3257 case ColumnPathSpanName:
3258 sp.addSpanAttr(traceql.IntrinsicNameAttribute, traceql.NewStaticString(unsafeToString(kv.Value.Bytes())))
3259 case columnPathSpanStatusCode:
3260 sp.addSpanAttr(traceql.IntrinsicStatusAttribute, traceql.NewStaticStatus(otlpStatusToTraceqlStatus(kv.Value.Uint64())))
3261 case columnPathSpanStatusMessage:

Callers

nothing calls this directly

Calls 15

addSpanAttrMethod · 0.95
setEventAttrsMethod · 0.95
setLinkAttrsMethod · 0.95
attributesMatchedMethod · 0.95
NewStaticStringFunction · 0.92
SpanIDToHexStringFunction · 0.92
NewStaticDurationFunction · 0.92
NewStaticStatusFunction · 0.92
NewStaticKindFunction · 0.92
NewStaticIntFunction · 0.92
NewStaticBoolFunction · 0.92
NewStaticFloatFunction · 0.92

Tested by

no test coverage detected