Add data usage collect with its new admin API (#8553)

Admin data usage info API returns the following

(Only FS & XL, for now)

- Number of buckets
- Number of objects
- The total size of objects
- Objects histogram
- Bucket sizes
This commit is contained in:
Anis Elleuch
2019-12-12 15:02:37 +01:00
committed by kannappanr
parent e2c5d29017
commit 555969ee42
24 changed files with 1109 additions and 172 deletions

View File

@@ -147,6 +147,28 @@ func (client *storageRESTClient) IsOnline() bool {
return atomic.LoadInt32(&client.connected) == 1
}
func (client *storageRESTClient) CrawlAndGetDataUsage(endCh <-chan struct{}) (DataUsageInfo, error) {
respBody, err := client.call(storageRESTMethodCrawlAndGetDataUsage, nil, nil, -1)
defer http.DrainBody(respBody)
if err != nil {
return DataUsageInfo{}, err
}
reader := bufio.NewReader(respBody)
for {
b, err := reader.ReadByte()
if err != nil {
return DataUsageInfo{}, err
}
if b != ' ' {
reader.UnreadByte()
break
}
}
var usageInfo DataUsageInfo
err = gob.NewDecoder(reader).Decode(&usageInfo)
return usageInfo, err
}
// LastError - returns the network error if any.
func (client *storageRESTClient) LastError() error {
return client.lastError