diff options
Diffstat (limited to 'metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java')
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java index c68e8214abf..0788ff9feb5 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java @@ -51,8 +51,13 @@ public class SystemPoller { this.jiffies = jiffies; this.cpus = Math.max(1, cpus); } - long normalizedJiffies() { - return jiffies / cpus; + /** 1.0 = 1 busy core Ranke = [0.0, #cores] */ + double ratioSingleCoreJiffies(long partJiffies) { + return (double)(partJiffies * cpus) / Math.max(1.0, jiffies); + } + /** Range = [0.0, 1.0] */ + double ratioJiffies(long partJiffies) { + return (double)(partJiffies) / Math.max(1.0, jiffies); } JiffiesAndCpus diff(JiffiesAndCpus prev) { return (cpus == prev.cpus) @@ -173,8 +178,8 @@ public class SystemPoller { long diff = procJiffies - last; if (diff >= 0) { - metrics.add(new Metric(CPU, 100 * ((double) diff) / sysJiffiesDiff.normalizedJiffies(), timeStamp)); - metrics.add(new Metric(CPU_UTIL, 100 * ((double) diff) / sysJiffiesDiff.jiffies, timeStamp)); + metrics.add(new Metric(CPU, 100 * sysJiffiesDiff.ratioSingleCoreJiffies(diff), timeStamp)); + metrics.add(new Metric(CPU_UTIL, 100 * sysJiffiesDiff.ratioJiffies(diff), timeStamp)); } lastCpuJiffiesMetrics.put(s, procJiffies); s.setSystemMetrics(metrics); |