From 3d10c892a25b263c5872def091cb144c9ec4f96a Mon Sep 17 00:00:00 2001 From: Alex Wong Date: Wed, 11 Dec 2019 11:13:43 +0800 Subject: [PATCH] Ignore first collected disk stats to prevent metric distortion --- pkg/systemstatsmonitor/disk_collector.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/systemstatsmonitor/disk_collector.go b/pkg/systemstatsmonitor/disk_collector.go index 6bb07b60..bcc66b0c 100644 --- a/pkg/systemstatsmonitor/disk_collector.go +++ b/pkg/systemstatsmonitor/disk_collector.go @@ -109,12 +109,16 @@ func (dc *diskCollector) collect() { for deviceName, ioCountersStat := range ioCountersStats { // Calculate average IO queue length since last measurement. - lastIOTime := dc.historyIOTime[deviceName] + lastIOTime, historyExist := dc.historyIOTime[deviceName] lastWeightedIO := dc.historyWeightedIO[deviceName] dc.historyIOTime[deviceName] = ioCountersStat.IoTime dc.historyWeightedIO[deviceName] = ioCountersStat.WeightedIO + if !historyExist { + // Ignore first collected stats. + return + } avgQueueLen := float64(0.0) if lastIOTime != ioCountersStat.IoTime { avgQueueLen = float64(ioCountersStat.WeightedIO-lastWeightedIO) / float64(ioCountersStat.IoTime-lastIOTime)