in internal/hostmetrics/osmetricreader/osmetricreader.go [104:193]
func diskMetrics(diskStats *statspb.DiskStatsCollection, instanceProperties *iipb.InstanceProperties, startTime int64, refreshTime int64) []*mpb.Metric {
var diskMetrics []*mpb.Metric
for _, disk := range instanceProperties.GetDisks() {
deviceID := disk.GetDeviceName()
if disk.GetDiskName() != "" {
deviceID = disk.GetDiskName()
}
localDiskMapping := localDiskForMapping(diskStats, disk.GetMapping())
volumeQueueLength := fmt.Sprintf("%g", metricsformatter.Unavailable)
volumeReadResponseTime := fmt.Sprintf("%g", metricsformatter.Unavailable)
volumeWriteResponseTime := fmt.Sprintf("%g", metricsformatter.Unavailable)
if localDiskMapping != nil {
volumeQueueLength = strconv.FormatInt(localDiskMapping.GetQueueLength(), 10)
volumeReadResponseTime = strconv.FormatInt(localDiskMapping.GetAverageReadResponseTimeMillis(), 10)
volumeWriteResponseTime = strconv.FormatInt(localDiskMapping.GetAverageWriteResponseTimeMillis(), 10)
}
diskMetrics = append(diskMetrics,
&mpb.Metric{
Name: "Volume ID",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_STRING,
Unit: mpb.Unit_UNIT_NONE,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_RESTART,
LastRefresh: startTime,
DeviceId: deviceID,
Value: deviceID,
},
&mpb.Metric{
Name: "Volume Type",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_STRING,
Unit: mpb.Unit_UNIT_NONE,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_RESTART,
LastRefresh: startTime,
DeviceId: deviceID,
Value: formattedDeviceType(disk.GetDeviceType()),
},
&mpb.Metric{
Name: "Mapping",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_STRING,
Unit: mpb.Unit_UNIT_NONE,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_RESTART,
LastRefresh: startTime,
DeviceId: deviceID,
Value: disk.GetMapping(),
},
&mpb.Metric{
Name: "Volume Queue Length",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_INT64,
Unit: mpb.Unit_UNIT_NONE,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_PER_MINUTE,
LastRefresh: refreshTime,
DeviceId: deviceID,
Value: volumeQueueLength,
},
&mpb.Metric{
Name: "Volume Read Response Time",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_INT64,
Unit: mpb.Unit_UNIT_MSEC,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_PER_MINUTE,
LastRefresh: refreshTime,
DeviceId: deviceID,
Value: volumeReadResponseTime,
},
&mpb.Metric{
Name: "Volume Write Response Time",
Context: mpb.Context_CONTEXT_VM,
Category: mpb.Category_CATEGORY_DISK,
Type: mpb.Type_TYPE_INT64,
Unit: mpb.Unit_UNIT_MSEC,
RefreshInterval: mpb.RefreshInterval_REFRESHINTERVAL_PER_MINUTE,
LastRefresh: refreshTime,
DeviceId: deviceID,
Value: volumeWriteResponseTime,
})
}
return diskMetrics
}