mirror of https://github.com/minio/minio.git
fix errors in metrics code on macos (#19965)
- do not load proc fs metrics in case of macos - null-check TimeStat before accessing
This commit is contained in:
parent
fae563b85d
commit
e200808ab7
|
@ -1688,7 +1688,7 @@ func getMinioProcMetrics() *MetricsGroupV2 {
|
|||
cacheInterval: 10 * time.Second,
|
||||
}
|
||||
mg.RegisterRead(func(ctx context.Context) (metrics []MetricV2) {
|
||||
if runtime.GOOS == "windows" {
|
||||
if runtime.GOOS == globalWindowsOSName || runtime.GOOS == globalMacOSName {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -55,15 +55,17 @@ func loadCPUMetrics(ctx context.Context, m MetricValues, c *metricsCache) error
|
|||
}
|
||||
|
||||
ts := cpuMetrics.TimesStat
|
||||
tot := ts.User + ts.System + ts.Idle + ts.Iowait + ts.Nice + ts.Steal
|
||||
cpuUserVal := math.Round(ts.User/tot*100*100) / 100
|
||||
m.Set(sysCPUUser, cpuUserVal)
|
||||
cpuSystemVal := math.Round(ts.System/tot*100*100) / 100
|
||||
m.Set(sysCPUSystem, cpuSystemVal)
|
||||
cpuNiceVal := math.Round(ts.Nice/tot*100*100) / 100
|
||||
m.Set(sysCPUNice, cpuNiceVal)
|
||||
cpuStealVal := math.Round(ts.Steal/tot*100*100) / 100
|
||||
m.Set(sysCPUSteal, cpuStealVal)
|
||||
if ts != nil {
|
||||
tot := ts.User + ts.System + ts.Idle + ts.Iowait + ts.Nice + ts.Steal
|
||||
cpuUserVal := math.Round(ts.User/tot*100*100) / 100
|
||||
m.Set(sysCPUUser, cpuUserVal)
|
||||
cpuSystemVal := math.Round(ts.System/tot*100*100) / 100
|
||||
m.Set(sysCPUSystem, cpuSystemVal)
|
||||
cpuNiceVal := math.Round(ts.Nice/tot*100*100) / 100
|
||||
m.Set(sysCPUNice, cpuNiceVal)
|
||||
cpuStealVal := math.Round(ts.Steal/tot*100*100) / 100
|
||||
m.Set(sysCPUSteal, cpuStealVal)
|
||||
}
|
||||
|
||||
// metrics-resource.go runs a job to collect resource metrics including their Avg values and
|
||||
// stores them in resourceMetricsMap. We can use it to get the Avg values of CPU idle and IOWait.
|
||||
|
|
|
@ -156,11 +156,13 @@ func loadProcessMetrics(ctx context.Context, m MetricValues, c *metricsCache) er
|
|||
m.Set(processUptimeSeconds, time.Since(globalBootTime).Seconds())
|
||||
}
|
||||
|
||||
p, err := procfs.Self()
|
||||
if err != nil {
|
||||
metricsLogIf(ctx, err)
|
||||
} else {
|
||||
loadProcFSMetrics(ctx, p, m)
|
||||
if runtime.GOOS != globalWindowsOSName && runtime.GOOS != globalMacOSName {
|
||||
p, err := procfs.Self()
|
||||
if err != nil {
|
||||
metricsLogIf(ctx, err)
|
||||
} else {
|
||||
loadProcFSMetrics(ctx, p, m)
|
||||
}
|
||||
}
|
||||
|
||||
if globalIsDistErasure && globalLockServer != nil {
|
||||
|
|
Loading…
Reference in New Issue