zotregistry.dev/zot@v1.4.4-0.20240314164342-eec277e14d20/pkg/extensions/monitoring/common.go (about) 1 package monitoring 2 3 import ( 4 "os" 5 "path/filepath" 6 "regexp" 7 ) 8 9 var re = regexp.MustCompile(`\/v2\/(.*?)\/(blobs|tags|manifests)\/(.*)$`) 10 11 type MetricServer interface { 12 SendMetric(interface{}) 13 // works like SendMetric, but adds the metric regardless of the value of 'enabled' field for MetricServer 14 ForceSendMetric(interface{}) 15 ReceiveMetrics() interface{} 16 IsEnabled() bool 17 } 18 19 func GetDirSize(path string) (int64, error) { 20 var size int64 21 22 err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error { 23 if err != nil { 24 return err 25 } 26 if !info.IsDir() { 27 size += info.Size() 28 } 29 30 return err 31 }) 32 33 return size, err 34 }