From 7ec20b347ad5ed878e7eb1c250b4e9109cebeb71 Mon Sep 17 00:00:00 2001 From: Joe Elliott Date: Mon, 13 Nov 2023 09:24:50 -0500 Subject: [PATCH] improve AttributeFor Signed-off-by: Joe Elliott --- tempodb/encoding/vparquet3/block_traceql.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tempodb/encoding/vparquet3/block_traceql.go b/tempodb/encoding/vparquet3/block_traceql.go index a562159f298..3cc519e10e3 100644 --- a/tempodb/encoding/vparquet3/block_traceql.go +++ b/tempodb/encoding/vparquet3/block_traceql.go @@ -120,12 +120,14 @@ func (s *span) AttributeFor(a traceql.Attribute) (traceql.Static, bool) { if attr := find(a, s.resourceAttrs); attr != nil { return *attr, true } + return traceql.Static{}, false } if a.Scope == traceql.AttributeScopeSpan { if attr := find(a, s.spanAttrs); attr != nil { return *attr, true } + return traceql.Static{}, false } if a.Intrinsic != traceql.IntrinsicNone { @@ -137,24 +139,20 @@ func (s *span) AttributeFor(a traceql.Attribute) (traceql.Static, bool) { if attr := find(a, s.traceAttrs); attr != nil { return *attr, true } + } - // span attrs brute force + // name search in span and then resource to give precedence to span + // we don't need to do a name search at the trace level b/c it is intrinsics only if attr := findName(a.Name, s.spanAttrs); attr != nil { return *attr, true } - // resource attrs brute force if attr := findName(a.Name, s.resourceAttrs); attr != nil { return *attr, true } - // trace attrs brute force - if attr := findName(a.Name, s.traceAttrs); attr != nil { - return *attr, true - } - - return traceql.NewStaticNil(), false + return traceql.Static{}, false } func (s *span) ID() []byte {