fix: intrument os.OpenFile differently for Reads and Writes (#15449)

allows us to trace latency for READs or WRITEs
This commit is contained in:
Harshavardhana
2022-08-01 13:22:43 -07:00
committed by GitHub
parent aad9cb208a
commit 043aaa792d
8 changed files with 43 additions and 36 deletions

View File

@@ -37,7 +37,8 @@ const (
osMetricMkdirAll
osMetricMkdir
osMetricRename
osMetricOpenFile
osMetricOpenFileW
osMetricOpenFileR
osMetricOpen
osMetricOpenFileDirectIO
osMetricLstat
@@ -135,7 +136,12 @@ func Rename(src, dst string) error {
// OpenFile captures time taken to call os.OpenFile
func OpenFile(name string, flag int, perm os.FileMode) (*os.File, error) {
defer updateOSMetrics(osMetricOpenFile, name)()
switch flag & writeMode {
case writeMode:
defer updateOSMetrics(osMetricOpenFileW, name)()
default:
defer updateOSMetrics(osMetricOpenFileR, name)()
}
return os.OpenFile(name, flag, perm)
}