Skip to content

Commit

Permalink
Change category name to look more like codes
Browse files Browse the repository at this point in the history
Currently, the category names are phrases/sentences. Keeping it as
codes makes them more succinct and easily searchable.
  • Loading branch information
kislaykishore committed Aug 23, 2024
1 parent 81e6222 commit 403aee3
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 32 deletions.
54 changes: 37 additions & 17 deletions internal/fs/wrappers/monitoring.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,26 @@ var (
tracer = otel.Tracer(name)
)

// Error categories
const (
deviceErr = "DEVICE_ERRORS"
dirNotEmptyErr = "DIR_NOT_EMPTY"
fileExistsErr = "FILE_EXISTS"
fileDirErr = "FILE_DIR_ERROR"
notImplementedErr = "NOT_IMPLEMENTED"
ioErr = "IO_ERROR"
intrErr = "INTERRUPT_ERROR"
invalidArgErr = "INVALID_ARGUMENT"
invalidOpErr = "INVALID_OPERATION"
miscErr = "MISC_ERROR"
nwErr = "NETWORK_ERROR"
noFileOrDirErr = "NO_FILE_OR_DIR"
notADirErr = "NOT_A_DIR"
permError = "PERM_ERROR"
processMgmtErr = "PROCESS_RESOURCE_MGMT_ERROR"
tooManyFilesErr = "TOO_MANY_OPEN_FILES"
)

// Initialize the metrics.
func init() {

Expand Down Expand Up @@ -96,34 +116,34 @@ func categorize(err error) string {
syscall.EPROTO,
syscall.ERFKILL,
syscall.EXDEV:
return "device errors"
return deviceErr

case syscall.ENOTEMPTY:
return "directory not empty"
return dirNotEmptyErr

case syscall.EEXIST:
return "file exists"
return fileExistsErr

case syscall.EBADF,
syscall.EBADFD,
syscall.EFBIG,
syscall.EISDIR,
syscall.EISNAM,
syscall.ENOTBLK:
return "file/directory errors"
return fileDirErr

case syscall.ENOSYS:
return "function not implemented"
return notImplementedErr

case syscall.EIO:
return "input/output error"
return ioErr

case syscall.ECANCELED,
syscall.EINTR:
return "interrupt errors"
return intrErr

case syscall.EINVAL:
return "invalid argument"
return invalidArgErr

case syscall.E2BIG,
syscall.EALREADY,
Expand All @@ -136,7 +156,7 @@ func categorize(err error) string {
syscall.ENOTTY,
syscall.ERANGE,
syscall.ESPIPE:
return "invalid operation"
return invalidOpErr

case syscall.EADV,
syscall.EBADSLT,
Expand Down Expand Up @@ -170,7 +190,7 @@ func categorize(err error) string {
syscall.EUCLEAN,
syscall.EUNATCH,
syscall.EXFULL:
return "miscellaneous errors"
return miscErr

case syscall.EADDRINUSE,
syscall.EADDRNOTAVAIL,
Expand Down Expand Up @@ -210,13 +230,13 @@ func categorize(err error) string {
syscall.ESOCKTNOSUPPORT,
syscall.ESTRPIPE,
syscall.ETIMEDOUT:
return "network errors"
return nwErr

case syscall.ENOENT:
return "no such file or directory"
return noFileOrDirErr

case syscall.ENOTDIR:
return "not a directory"
return notADirErr

case syscall.EACCES,
syscall.EKEYEXPIRED,
Expand All @@ -226,7 +246,7 @@ func categorize(err error) string {
syscall.EPERM,
syscall.EROFS,
syscall.ETXTBSY:
return "permission errors"
return permError

case syscall.EAGAIN,
syscall.EBUSY,
Expand All @@ -243,13 +263,13 @@ func categorize(err error) string {
syscall.EOWNERDEAD,
syscall.ESRCH,
syscall.EUSERS:
return "process/resource management errors"
return processMgmtErr

case syscall.EMFILE,
syscall.ENFILE:
return "too many open files"
return tooManyFilesErr
}
return "miscellaneous errors"
return miscErr
}

// Records file system operation count, failed operation count and the operation latency.
Expand Down
30 changes: 15 additions & 15 deletions internal/fs/wrappers/monitoring_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,63 +37,63 @@ func TestFsErrStrAndCategory(t *testing.T) {
}{
{
fsErr: fmt.Errorf("some random error"),
expectedCategory: "input/output error",
expectedCategory: ioErr,
},
{
fsErr: syscall.ENOTEMPTY,
expectedCategory: "directory not empty",
expectedCategory: dirNotEmptyErr,
},
{
fsErr: syscall.EEXIST,
expectedCategory: "file exists",
expectedCategory: fileExistsErr,
},
{
fsErr: syscall.EINVAL,
expectedCategory: "invalid argument",
expectedCategory: invalidArgErr,
},
{
fsErr: syscall.EINTR,
expectedCategory: "interrupt errors",
expectedCategory: intrErr,
},
{
fsErr: syscall.ENOSYS,
expectedCategory: "function not implemented",
expectedCategory: notImplementedErr,
},
{
fsErr: syscall.ENOSPC,
expectedCategory: "process/resource management errors",
expectedCategory: processMgmtErr,
},
{
fsErr: syscall.E2BIG,
expectedCategory: "invalid operation",
expectedCategory: invalidOpErr,
},
{
fsErr: syscall.EHOSTDOWN,
expectedCategory: "network errors",
expectedCategory: nwErr,
},
{
fsErr: syscall.ENODATA,
expectedCategory: "miscellaneous errors",
expectedCategory: miscErr,
},
{
fsErr: syscall.ENODEV,
expectedCategory: "device errors",
expectedCategory: deviceErr,
},
{
fsErr: syscall.EISDIR,
expectedCategory: "file/directory errors",
expectedCategory: fileDirErr,
},
{
fsErr: syscall.ENOSYS,
expectedCategory: "function not implemented",
expectedCategory: notImplementedErr,
},
{
fsErr: syscall.ENFILE,
expectedCategory: "too many open files",
expectedCategory: tooManyFilesErr,
},
{
fsErr: syscall.EPERM,
expectedCategory: "permission errors",
expectedCategory: permError,
},
}

Expand Down

0 comments on commit 403aee3

Please sign in to comment.