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

Function processBlock

cmd/tempo-cli/cmd-analyse-block.go:251–315  ·  view source on GitHub ↗
(r backend.Reader, tenantID, blockID string, includeWellKnown bool, maxStartTime, minStartTime time.Time, minCompactionLvl uint32)

Source from the content-addressed store, hash-verified

249}
250
251func processBlock(r backend.Reader, tenantID, blockID string, includeWellKnown bool, maxStartTime, minStartTime time.Time, minCompactionLvl uint32) (*blockSummary, error) {
252 id := uuid.MustParse(blockID)
253
254 meta, err := r.BlockMeta(context.TODO(), id, tenantID)
255 if err != nil {
256 return nil, err
257 }
258 if meta.CompactionLevel < minCompactionLvl {
259 return nil, nil
260 }
261 if !maxStartTime.IsZero() && meta.StartTime.After(maxStartTime) {
262 // Block is newer than maxStartTime
263 return nil, nil
264 }
265 if !minStartTime.IsZero() && meta.StartTime.Before(minStartTime) {
266 // Block is older than minStartTime
267 return nil, nil
268 }
269
270 var reader io.ReaderAt
271 switch meta.Version {
272 case vparquet3.VersionString:
273 reader = vparquet3.NewBackendReaderAt(context.Background(), r, vparquet3.DataFileName, meta)
274 case vparquet4.VersionString:
275 reader = vparquet4.NewBackendReaderAt(context.Background(), r, vparquet4.DataFileName, meta)
276 case vparquet5.VersionString:
277 reader = vparquet5.NewBackendReaderAt(context.Background(), r, vparquet5.DataFileName, meta)
278 default:
279 fmt.Println("Unsupported block version:", meta.Version)
280 return nil, nil
281 }
282
283 br := tempo_io.NewBufferedReaderAt(reader, int64(meta.Size_), 2*1024*1024, 64) // 128 MB memory buffering
284
285 pf, err := parquet.OpenFile(br, int64(meta.Size_), parquet.SkipBloomFilters(true), parquet.SkipPageIndex(true))
286 if err != nil {
287 return nil, err
288 }
289
290 fmt.Println("Scanning block contents. Press CRTL+C to quit ...")
291
292 paths := pathsForVersion(meta.Version)
293
294 spanSummary, err := aggregateScope(pf, meta, paths.span, includeWellKnown)
295 if err != nil {
296 return nil, err
297 }
298
299 resSummary, err := aggregateScope(pf, meta, paths.res, includeWellKnown)
300 if err != nil {
301 return nil, err
302 }
303
304 eventSummary, err := aggregateScope(pf, meta, paths.event, includeWellKnown)
305 if err != nil {
306 return nil, err
307 }
308

Callers 3

RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85

Calls 6

NewBackendReaderAtFunction · 0.92
NewBackendReaderAtFunction · 0.92
NewBackendReaderAtFunction · 0.92
pathsForVersionFunction · 0.85
aggregateScopeFunction · 0.85
BlockMetaMethod · 0.65

Tested by

no test coverage detected