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

Method observeExemplar

pkg/traceql/engine_metrics_compare.go:185–209  ·  view source on GitHub ↗
(span Span)

Source from the content-addressed store, hash-verified

183}
184
185func (m *MetricsCompare) observeExemplar(span Span) {
186 st := span.StartTimeUnixNanos()
187 isSelection := m.isSelection(span, st)
188
189 // Exemplars
190 if uint32(len(m.baselineExemplars)) >= m.maxExemplars || uint32(len(m.selectionExemplars)) >= m.maxExemplars {
191 return
192 }
193
194 all := span.AllAttributes()
195 lbls := make(Labels, 0, len(all))
196 for a, v := range all {
197 lbls = append(lbls, Label{Name: a.String(), Value: v})
198 }
199 exemplar := Exemplar{
200 Labels: lbls,
201 Value: math.NaN(), // TODO: What value?
202 TimestampMs: st / uint64(time.Millisecond),
203 }
204 if isSelection.Equals(&StaticTrue) {
205 m.selectionExemplars = append(m.selectionExemplars, exemplar)
206 } else {
207 m.baselineExemplars = append(m.baselineExemplars, exemplar)
208 }
209}
210
211func (m *MetricsCompare) observeSeries(ss []*tempopb.TimeSeries) {
212 m.seriesAgg.Combine(ss)

Callers

nothing calls this directly

Calls 5

isSelectionMethod · 0.95
EqualsMethod · 0.80
StartTimeUnixNanosMethod · 0.65
AllAttributesMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected