func()

in pkg/metrics/collector/pod_ip_metrics.go [280:304]


func (c *podIPMetricsCollector) updateReuseIPStats(e fsnotify.Event, f string) {
	reuseIP, ok := c.reuseMap[f]
	switch {
	case e.Op&fsnotify.Remove == fsnotify.Remove:
		if !ok {
			c.reuseMap[f] = &ipReuse{c.clock.Now(), 0}
		} else {
			reuseIP.ipReleasedTimestamp = c.clock.Now()
		}
	case e.Op&fsnotify.Create == fsnotify.Create:
		if ok {
			oldT := reuseIP.ipReleasedTimestamp
			diff := uint64(c.clock.Now().Sub(oldT).Milliseconds())
			if diff > 0 {
				reuseIP.ipReuseInterval = float64(diff)
				c.reuseIPs.count++
				c.reuseIPs.sum += float64(diff)
				if diff < c.reuseIPs.min {
					c.reuseIPs.min = diff
				}
				c.fillBuckets(diff)
			}
		}
	}
}