trace: Add bucket/prefix to WalkDir() tracing (#12510)

Bonus, replace os.* API with os-instrumented.go
This commit is contained in:
Anis Elleuch 2021-06-15 22:34:26 +01:00 committed by GitHub
parent da74e2f167
commit f30c996d48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 7 deletions

View File

@ -58,7 +58,7 @@ type WalkDirOptions struct {
// WalkDir will traverse a directory and return all entries found. // WalkDir will traverse a directory and return all entries found.
// On success a sorted meta cache stream will be returned. // On success a sorted meta cache stream will be returned.
// Metadata has data stripped, if any. // Metadata has data stripped, if any.
func (s *xlStorage) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writer) error { func (s *xlStorage) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writer) (err error) {
// Verify if volume is valid and it exists. // Verify if volume is valid and it exists.
volumeDir, err := s.getVolDir(opts.Bucket) volumeDir, err := s.getVolDir(opts.Bucket)
if err != nil { if err != nil {
@ -100,7 +100,7 @@ func (s *xlStorage) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writ
metadata: metadata, metadata: metadata,
} }
} else { } else {
if st, err := os.Lstat(pathJoin(volumeDir, opts.BaseDir, xlStorageFormatFile)); err == nil && st.Mode().IsRegular() { if st, err := Lstat(pathJoin(volumeDir, opts.BaseDir, xlStorageFormatFile)); err == nil && st.Mode().IsRegular() {
return errFileNotFound return errFileNotFound
} }
} }
@ -272,7 +272,7 @@ func (s *xlStorage) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writ
} }
func (p *xlStorageDiskIDCheck) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writer) error { func (p *xlStorageDiskIDCheck) WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writer) error {
defer p.updateStorageMetrics(storageMetricWalkDir)() defer p.updateStorageMetrics(storageMetricWalkDir, opts.Bucket, opts.BaseDir)()
if err := p.checkDiskStale(); err != nil { if err := p.checkDiskStale(); err != nil {
return err return err
} }

View File

@ -107,7 +107,7 @@ func readDir(dirPath string) (entries []string, err error) {
// the directory itself, if the dirPath doesn't exist this function doesn't return // the directory itself, if the dirPath doesn't exist this function doesn't return
// an error. // an error.
func readDirFn(dirPath string, fn func(name string, typ os.FileMode) error) error { func readDirFn(dirPath string, fn func(name string, typ os.FileMode) error) error {
f, err := os.Open(dirPath) f, err := Open(dirPath)
if err != nil { if err != nil {
if osErrToFileErr(err) == errFileNotFound { if osErrToFileErr(err) == errFileNotFound {
return nil return nil
@ -185,7 +185,7 @@ func readDirFn(dirPath string, fn func(name string, typ os.FileMode) error) erro
// Return count entries at the directory dirPath and all entries // Return count entries at the directory dirPath and all entries
// if count is set to -1 // if count is set to -1
func readDirN(dirPath string, count int) (entries []string, err error) { func readDirN(dirPath string, count int) (entries []string, err error) {
f, err := os.Open(dirPath) f, err := Open(dirPath)
if err != nil { if err != nil {
return nil, osErrToFileErr(err) return nil, osErrToFileErr(err)
} }
@ -229,7 +229,7 @@ func readDirN(dirPath string, count int) (entries []string, err error) {
// support Dirent.Type and have DT_UNKNOWN (0) there // support Dirent.Type and have DT_UNKNOWN (0) there
// instead. // instead.
if typ == unexpectedFileMode || typ&os.ModeSymlink == os.ModeSymlink { if typ == unexpectedFileMode || typ&os.ModeSymlink == os.ModeSymlink {
fi, err := os.Stat(pathJoin(dirPath, string(name))) fi, err := Stat(pathJoin(dirPath, string(name)))
if err != nil { if err != nil {
// It got deleted in the meantime, not found // It got deleted in the meantime, not found
// or returns too many symlinks ignore this // or returns too many symlinks ignore this

View File

@ -393,7 +393,7 @@ func (s *xlStorage) Healing() *healingTracker {
} }
func (s *xlStorage) readMetadata(itemPath string) ([]byte, error) { func (s *xlStorage) readMetadata(itemPath string) ([]byte, error) {
f, err := os.OpenFile(itemPath, readMode, 0) f, err := OpenFile(itemPath, readMode, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }