From fc8592ab456b5c822a2e44a0972179acdd97c2d5 Mon Sep 17 00:00:00 2001 From: yusing Date: Thu, 22 May 2025 22:41:39 +0800 Subject: [PATCH] fix(systeminfo): divide by zero on disk I/O speed calculation --- internal/metrics/systeminfo/system_info.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/metrics/systeminfo/system_info.go b/internal/metrics/systeminfo/system_info.go index f154244..c76d165 100644 --- a/internal/metrics/systeminfo/system_info.go +++ b/internal/metrics/systeminfo/system_info.go @@ -166,11 +166,11 @@ func (s *SystemInfo) collectDisksInfo(ctx context.Context, lastResult *SystemInf } s.DisksIO = ioCounters if lastResult != nil { - interval := float64(time.Now().Unix() - lastResult.Timestamp) + interval := time.Now().Unix() - lastResult.Timestamp for name, disk := range s.DisksIO { if lastUsage, ok := lastResult.DisksIO[name]; ok { - disk.ReadSpeed = float64(disk.ReadBytes-lastUsage.ReadBytes) / interval - disk.WriteSpeed = float64(disk.WriteBytes-lastUsage.WriteBytes) / interval + disk.ReadSpeed = float64(disk.ReadBytes-lastUsage.ReadBytes) / float64(interval) + disk.WriteSpeed = float64(disk.WriteBytes-lastUsage.WriteBytes) / float64(interval) disk.Iops = (disk.ReadCount + disk.WriteCount - lastUsage.ReadCount - lastUsage.WriteCount) / uint64(interval) } }