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

Function includeBlock

tempodb/tempodb.go:822–844  ·  view source on GitHub ↗

includeBlock indicates whether a given block should be included in a backend search

(b *backend.BlockMeta, _ common.ID, blockStart, blockEnd []byte, timeStart, timeEnd int64)

Source from the content-addressed store, hash-verified

820
821// includeBlock indicates whether a given block should be included in a backend search
822func includeBlock(b *backend.BlockMeta, _ common.ID, blockStart, blockEnd []byte, timeStart, timeEnd int64) bool {
823 // todo: restore this functionality once it works. min/max ids are currently not recorded
824 // https://github.com/grafana/tempo/issues/1903
825 // correctly in a block
826 // if bytes.Compare(id, b.MinID) == -1 || bytes.Compare(id, b.MaxID) == 1 {
827 // return false
828 // }
829
830 if timeStart != 0 && timeEnd != 0 {
831 if b.StartTime.Unix() >= timeEnd || b.EndTime.Unix() <= timeStart {
832 return false
833 }
834 }
835
836 blockIDBytes, _ := b.BlockID.Marshal()
837 // check block is in shard boundaries
838 // blockStartBytes <= blockIDBytes <= blockEndBytes
839 if bytes.Compare(blockIDBytes, blockStart) == -1 || bytes.Compare(blockIDBytes, blockEnd) == 1 {
840 return false
841 }
842
843 return true
844}
845
846// if block is compacted within lookback period, and is within shard ranges, include it in search
847func includeCompactedBlock(c *backend.CompactedBlockMeta, id common.ID, blockStart, blockEnd []byte, poll time.Duration, timeStart, timeEnd int64) bool {

Callers 3

TestIncludeBlockFunction · 0.70
FindMethod · 0.70
includeCompactedBlockFunction · 0.70

Calls 2

MarshalMethod · 0.65
CompareMethod · 0.45

Tested by 1

TestIncludeBlockFunction · 0.56