(r backend.Reader, tenantID, blockID string, includeWellKnown bool, maxStartTime, minStartTime time.Time, minCompactionLvl uint32)
| 249 | } |
| 250 | |
| 251 | func 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 |
no test coverage detected