github.com/grafana/pyroscope@v1.18.0/pkg/phlaredb/validate.go (about) 1 package phlaredb 2 3 import ( 4 "context" 5 "path" 6 7 "github.com/grafana/dskit/runutil" 8 9 "github.com/grafana/pyroscope/pkg/objstore/client" 10 "github.com/grafana/pyroscope/pkg/objstore/providers/filesystem" 11 "github.com/grafana/pyroscope/pkg/phlaredb/block" 12 "github.com/grafana/pyroscope/pkg/util" 13 ) 14 15 // ValidateLocalBlock validates the block in the given directory is readable. 16 func ValidateLocalBlock(ctx context.Context, dir string) error { 17 meta, err := block.ReadMetaFromDir(dir) 18 if err != nil { 19 return err 20 } 21 22 bkt, err := client.NewBucket(ctx, client.Config{ 23 StorageBackendConfig: client.StorageBackendConfig{ 24 Backend: client.Filesystem, 25 Filesystem: filesystem.Config{ 26 Directory: path.Dir(dir), 27 }, 28 }, 29 }, "validate") 30 if err != nil { 31 return err 32 } 33 q := NewSingleBlockQuerierFromMeta(ctx, bkt, meta) 34 defer runutil.CloseWithLogOnErr(util.Logger, q, "closing block querier") 35 return q.Open(ctx) 36 }