Expose total and available disk space (#7453)

This commit is contained in:
Harshavardhana 2019-04-04 21:21:50 -07:00 committed by Nitish Tiwari
parent 979309148e
commit 0188009c7e
7 changed files with 94 additions and 56 deletions

View File

@ -251,6 +251,8 @@ func (fs *FSObjects) StorageInfo(ctx context.Context) StorageInfo {
}
storageInfo := StorageInfo{
Used: used,
Total: di.Total,
Available: di.Free,
}
storageInfo.Backend.Type = BackendFS
return storageInfo

View File

@ -142,6 +142,26 @@ func (c *minioCollector) Collect(ch chan<- prometheus.Metric) {
float64(s.Used),
)
// Total disk available space seen by Minio server instance
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(
prometheus.BuildFQName("minio", "disk", "storage_available_bytes"),
"Total disk available space seen by Minio server instance",
nil, nil),
prometheus.GaugeValue,
float64(s.Available),
)
// Total disk space seen by Minio server instance
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(
prometheus.BuildFQName("minio", "disk", "storage_total_bytes"),
"Total disk space seen by Minio server instance",
nil, nil),
prometheus.GaugeValue,
float64(s.Total),
)
// Minio Total Disk/Offline Disk
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(

View File

@ -41,6 +41,10 @@ const (
type StorageInfo struct {
Used uint64 // Used total used per tenant.
Total uint64 // Total disk space.
Available uint64 // Total disk space available.
// Backend type.
Backend struct {
// Represents various backend types, currently on FS and Erasure.

View File

@ -307,6 +307,8 @@ func (s *xlSets) StorageInfo(ctx context.Context) StorageInfo {
for _, set := range s.sets {
lstorageInfo := set.StorageInfo(ctx)
storageInfo.Used = storageInfo.Used + lstorageInfo.Used
storageInfo.Total = storageInfo.Total + lstorageInfo.Total
storageInfo.Available = storageInfo.Available + lstorageInfo.Available
storageInfo.Backend.OnlineDisks = storageInfo.Backend.OnlineDisks + lstorageInfo.Backend.OnlineDisks
storageInfo.Backend.OfflineDisks = storageInfo.Backend.OfflineDisks + lstorageInfo.Backend.OfflineDisks
}

View File

@ -120,10 +120,12 @@ func getStorageInfo(disks []StorageAPI) StorageInfo {
return StorageInfo{}
}
// Combine all disks to get total usage.
var used uint64
// Combine all disks to get total usage
var used, total, available uint64
for _, di := range validDisksInfo {
used = used + di.Used
total = total + di.Total
available = available + di.Free
}
_, sscParity := getRedundancyCount(standardStorageClass, len(disks))
@ -131,7 +133,10 @@ func getStorageInfo(disks []StorageAPI) StorageInfo {
storageInfo := StorageInfo{
Used: used,
Total: total,
Available: available,
}
storageInfo.Backend.Type = BackendErasure
storageInfo.Backend.OnlineDisks = onlineDisks
storageInfo.Backend.OfflineDisks = offlineDisks

View File

@ -131,17 +131,18 @@ Sends a service action command to service - possible actions are restarting and
Fetches information for all cluster nodes, such as server properties, storage information, network statistics, etc.
| Param | Type | Description |
|---|---|---|
|---------------------------------|--------------------|--------------------------------------------------------------------|
| `si.Addr` | _string_ | Address of the server the following information is retrieved from. |
| `si.ConnStats` | _ServerConnStats_ | Connection statistics from the given server. |
| `si.HTTPStats` | _ServerHTTPStats_ | HTTP connection statistics from the given server. |
| `si.Properties` | _ServerProperties_ | Server properties such as region, notification targets. |
| `si.Data.StorageInfo.Used` | _int64_ | Used disk space. |
| `si.Data.StorageInfo.Total` | _int64_ | Total disk space. |
|`si.Data.StorageInfo.Free` | _int64_ | Free disk space. |
| `si.Data.StorageInfo.Available` | _int64_ | Available disk space. |
| `si.Data.StorageInfo.Backend` | _struct{}_ | Represents backend type embedded structure. |
| Param | Type | Description |
|---|---|---|
|-----------------------------|-----------------|----------------------------------------------------|
| `ServerProperties.Uptime` | _time.Duration_ | Total duration in seconds since server is running. |
| `ServerProperties.Version` | _string_ | Current server version. |
| `ServerProperties.CommitID` | _string_ | Current server commitID. |
@ -149,12 +150,12 @@ Fetches information for all cluster nodes, such as server properties, storage in
| `ServerProperties.SQSARN` | _[]string_ | List of notification target ARNs. |
| Param | Type | Description |
|---|---|---|
|------------------------------------|----------|-------------------------------------|
| `ServerConnStats.TotalInputBytes` | _uint64_ | Total bytes received by the server. |
| `ServerConnStats.TotalOutputBytes` | _uint64_ | Total bytes sent by the server. |
| Param | Type | Description |
|---|---|---|
|--------------------------------------|-------------------------|---------------------------------------------------------|
| `ServerHTTPStats.TotalHEADStats` | _ServerHTTPMethodStats_ | Total statistics regarding HEAD operations |
| `ServerHTTPStats.SuccessHEADStats` | _ServerHTTPMethodStats_ | Total statistics regarding successful HEAD operations |
| `ServerHTTPStats.TotalGETStats` | _ServerHTTPMethodStats_ | Total statistics regarding GET operations |
@ -168,12 +169,12 @@ Fetches information for all cluster nodes, such as server properties, storage in
| Param | Type | Description |
|---|---|---|
|-------------------------------------|----------|-------------------------------------------------|
| `ServerHTTPMethodStats.Count` | _uint64_ | Total number of operations. |
| `ServerHTTPMethodStats.AvgDuration` | _string_ | Average duration of Count number of operations. |
| Param | Type | Description |
|---|---|---|
|----------------------------|-----------------|-----------------------------------------------------------------------------------|
| `Backend.Type` | _BackendType_ | Type of backend used by the server currently only FS or Erasure. |
| `Backend.OnlineDisks` | _int_ | Total number of disks online (only applies to Erasure backend), is empty for FS. |
| `Backend.OfflineDisks` | _int_ | Total number of disks offline (only applies to Erasure backend), is empty for FS. |
@ -184,7 +185,7 @@ Fetches information for all cluster nodes, such as server properties, storage in
| `Backend.Sets` | _[][]DriveInfo_ | Represents topology of drives in erasure coded sets. |
| Param | Type | Description |
|---|---|---|
|----------------------|----------|-------------------------------------------------------|
| `DriveInfo.UUID` | _string_ | Unique ID for each disk provisioned by server format. |
| `DriveInfo.Endpoint` | _string_ | Endpoint location of the remote/local disk. |
| `DriveInfo.State` | _string_ | Current state of the disk at endpoint. |

View File

@ -51,6 +51,10 @@ type DriveInfo HealDriveInfo
type StorageInfo struct {
Used uint64 // Total used spaced per tenant.
Available uint64 // Total available space.
Total uint64 // Total disk space.
// Backend type.
Backend struct {
// Represents various backend types, currently on FS and Erasure.